Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

テキストボックスの値が変更になったら

ポイントを入力するテキストボックスが2つあって、 1つめのテキストボックスの値が変更されたら2つめの テキストボックスにもその変更された値を表示するとい う事は可能でしょうか? onChangeの処理かなーとも思ったのですが書き方がよく わかりません。 何か良い方法がありましたら教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • hequil
  • ベストアンサー率65% (242/372)
回答No.4

JavaScriptのレイヤー処理苦手なんですけどね(^^;; 乗りかかった船ってことで、無理矢理ですけど動作確認したHTMLを以下に書いておきます。 ※ 「<」と「>」は半角に、字下げに使用している全角スペースは半角スペースやタブに変えて下さいね。 <html> <head>   <script type="text/javascript"><!--   function outmsg( msg ) {     if( msg == null ) msg = "";     if( document.all ) {       ie_out = document.all("out_box");       ie_out.innerHTML = msg;     }else if( document.layers ) {       nn_out = document.layers["out_box"];       nn_out.document.open();       nn_out.document.write( msg );       nn_out.document.close();     }   }   // --></script> </head> <body> <form>   <input type="text" name="in_box" onChange="outmsg( this.value );"> </form> <table border=0><tr>   <layer name="out_box"><td>   <span id="out_box"></span>   </td></layer> </tr></table> </body> </html> 参考まで

kanato
質問者

お礼

hequilさんありがとうございます!! 上のソースで思った通りの処理が出来ました。 とても助かりました。ありがとうございました。 また質問という形になってしまってとても申し訳無いのですが、 この処理はテキストボックスが不特定の時にも使用する事は可能でしょうか? テキストボックスの数が決まっていないので、出力先のout_boxの名前を onChange="outmsg( this.value )" に追加パラメータとして渡し、出力先を指定するようにしてみたのですが、 エラーが出てしまいました。 <HTML><HEAD> <script type="text/javascript"><!--  function outmsg( msg ,txt) {   if( msg == null ) msg = "";   if( document.all ) {     ie_out = document.all(txt);     ie_out.innerHTML = msg;   }else if( document.layers ) {      nn_out = document.layers[txt];      nn_out.document.open();      nn_out.document.write( msg );      nn_out.document.close();   } } // --></script> </head> <body> <table border="1">  <td>  <input type="text" name="in_box0" onChange="outmsg( this.value ,"out_box0");">  <layer name="out_box0"><td>  <span id="out_box0"></span>  </td></layer>  </td>  <td>  <input type="text" name="in_box1" onChange="outmsg( this.value ,"out_box1");">  <layer name="out_box1"><td>  <span id="out_box1"></span>  </td></layer>  </td> </table> </BODY> </HTML> という書き方ではまずいのでしょうか? すみませんが見て頂けると助かります。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • hequil
  • ベストアンサー率65% (242/372)
回答No.5

ダブルクォーテーションの中にダブルクォーテーションは使えないので、 onChange="outmsg( this.value ,"out_box0");" onChange="outmsg( this.value ,"out_box1");" を onChange="outmsg( this.value ,'out_box0');" onChange="outmsg( this.value ,'out_box1');" にすれば、エラーは直ると思います。 ただし、補足のHTMLだとformタグやtrタグがなかったり layerタグの位置の問題で、ネスケで正常に動作しないと思いますが、その辺りはブラウザを再読込しながら色々試してみると良いかと思います。 (この辺りがネスケの苦労するところ、苦笑) 参考まで

kanato
質問者

お礼

何度も回答してもらってありがとうございました。 エラー直りました!! でもネスケで全然動いてくれない・・・ IEでは正常に動いてくれるのですが(涙) 色々試してみたのですがまだ無理です。 再度色々試してみたいと思いますが、どうしても無理な 時はまた質問という形をとってもよろしいでしょうか? hequilさんには何度もご迷惑をおかけしていると思いますが どうぞ宜しくお願い致します。

すると、全ての回答が全文表示されます。
  • hequil
  • ベストアンサー率65% (242/372)
回答No.3

ものすごくシンプルに書くとこんな感じになります。 ※「<」と「>」は実際には半角で書いて下さいね。 <form name="sample"> <input type="text" name="in_box" onChange="document.sample.out_box.value=this.value;"> <input type="text" name="out_box"> </form> 参考まで

kanato
質問者

補足

とてもわかりやすい説明ありがとうございました!! 試してみたところうまくいきました。 そこでもう一つなのですが、同じ処理を 入力は <input type="text" name="in_box" onChange="document.sample.out_box.value=this.value;"> のテキストボックスで、その変更された値を表示するのは テキストボックスではなくて <td><b><font>ここに値が入ります</font></b></td><br> にしても同じような事は可能でしょうか? すみませんがよろしくお願いします。

すると、全ての回答が全文表示されます。
  • imeruchan
  • ベストアンサー率43% (45/104)
回答No.2

すみません、確認画面ではちゃんと表示されてたんですが、わけわかんないソースになってしまってますね。 &lt;:< &gt;:> とそれぞれ読み替えてください。

kanato
質問者

お礼

さっそくの回答ありがとうございました。 ソースを参考に試してみたいと思います。

すると、全ての回答が全文表示されます。
  • imeruchan
  • ベストアンサー率43% (45/104)
回答No.1

2つのテキストボックスでいいんですよね? とりあえず下記ソースのようで、いかがですか? 適当にアレンジしてみてください。 --------- &lt;html&gt; &lt;head&gt; &lt;script language="javascript"&gt; &lt;!-- function henko(){ t1 = hoge.text1.value; hoge.text2.value = t1; } --&gt; &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;form name="hoge"&gt; 1つ目&lt;input type="text" name="text1" onchange="henko();"&gt; <br&gt; 2つ目&lt;input type="text" name="text2"&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;

すると、全ての回答が全文表示されます。

関連するQ&A