• ベストアンサー

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

hequilの回答

  • ベストアンサー
  • 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> という書き方ではまずいのでしょうか? すみませんが見て頂けると助かります。

関連するQ&A

  • テキストボックスの値変更時のイベント

    フォーム上のテキストボックスに、前の画面で入力したデフォルト値が表示されている状態で、テキストボックスの値を変更したらJavaScriptの関数でチェックさせたいと考えているのですがうまくいきません。 onChangeイベントは値を変更(例えば削除するなど)して、Enterキーを押すなりフォーカスを移すなりしないとイベントが発生しないので、変更されたら即座にチェックということができません 何かうまい方法はないでしょうか?

  • テキストボックスに入力した色に背景色を変える

    教えてください。 テキストボックスに入力されたカラーコード又はカラーネームに背景色を変更させたいのですが、onchangeを使えばいいのはわかるのですが、入力された値をどうやって表示されるかよくわかりません。ボタンを使って変更させるのはわかるのですが…。 よろしくお願いいたします。

  • フォーム上のテキストボックスの値を変更させない方法って?

    アクセス2000を使っています。 フォーム上にテキストボックスを作成して、テーブル の値を表示しています。 VBAでこのテキストボックスの値が1の時は, me!txt.enabled=true(テキストボックスが開く) 0の時は、me!txt.enabled=false(テキストボックスがグレーアウト)というようにさせたいのです。さらにこのテキストボックスの値を変更できないようにしたいのですが方法はありますか? 要は、表示だけさせたいのです。 プロパティで値ロックするとenableが利かなくなります。 よろしくお願いいたします

  • テキストボックスに値入力でイベントが取得できない

    年月日テキストボックス(readonly)に、子ウインドウから値を選択して、表示させています。 可変で複数行あり、同じ値はエラーにしたいのですが、子ウインドウから値が入力された場合のイベント取得ができません。(onchangeは無視されます) なるべく入力をした時点でチェックしたのです。 よろしくお願いします。

  • テキストボックスにセルの値を参照した後・・・

    お世話になります。 表題の件ですが、テキストボックスに「=A1」というような式を入れ、値をリンクさせた後の処理について質問です。 たとえば、 A1に1000と入力し、この値をテキストボックス内にリンクさせたとします。 ここまではいいのですが、その後このテキストボックスをクリックすると数式バーには参照先が表示されます(テキストボックス内は参照先の値が表示されています)。 この状態から、値だけを残し、どこを参照しているかという情報を消してしまうにはどうすればよいでしょうか? テキストボックスをクリックし、数式バーに表示されている参照先を消してしまえば、値を残したまま参照先を消すことはできました。 しかし、一度に複数のテキストボックスを扱うので、ひとつひとつ、クリック→参照先を消去、という作業を繰り返していては時間がいくらあっても足りません。一度に処理してしまう方法はないものでしょうか・・・? よい対処法をお教えください。よろしくお願いします。

  • セルの値を1桁ずつ、テキストボックスへ

    幾つかの値が入力されたセルから1桁ずつ取り出して、テキストボックスへバラバラに表示させたいのですが・・・よろしくお願いします。 例えば1234567等の7桁の値が入力されたセルがあって、それを指定したテキストボックスへ1、2、3、4、5、6、7と7つのテキストボックスへ表示させたいのです。 セルからセルだったらMID(A1,1,1)で“1”を取得できますが、これをテキストボックスで取得したいのです。 事前にセルで取得してテキストボックスとリンクさせていたのですが、元のデータが変わるたびにやり直さないといけないので、テキストボックスから直接取得させたいのですが、何か良い方法がありましたら宜しくお願いします。

  • テキストボックスの値をテーブルに追加

    お世話になります。 Access2000 あるテーブルの一覧をフォームのリストボックス(lst_1)に表示し、 そのリストボックスから選択された行を フィールド上の各テキストボックス(非連結)に表示しております。 そこで、表示されているテキストボックスの値を変更した時に テーブルに変更された値を反映させる方法をご教授よろしくお願いします。

  • VBA テキストボックスのイベントについて

    Microsoft ACCESS 2010を使用しています。 「テキスト0」という名前のテキストボックスがあり、 Me![テキスト0].Value = "こんにちは" というコードでテキストボックスの文字を変更します。 この時、テキストボックスの値が変更されたという条件でまた別のコードを動作させたいのですが、テキストボックスのイベントである、「更新前処理」「更新後処理」「ダーティー時」「変更時」では、動作しませんでした。 テキストボックスの値を変更する段階で別のコードを入力すれば対応は可能なのですが、「テキストボックスの値を変更した時」のタイミングで別コードを動作させることで、コードをまとめたいと考えています。 これに対して良い方法はありますか?よろしくお願いします。

  • テキストボックスの入力抑制

    使用言語はVB.NETです。 フォームAのテキストボックスAに文字を入力し確定すると、 フォームBが起動、フォームBのテキストボックスには、 テキストボックスAで入力した内容が表示されており、それを 変更することはできない。 ただし、テキストボックスAに何も入力せずに起動した場合、 テキストボックスBの内容は書き換え可能、というようなものを 作りたいと思っています。 また、テキストボックスBを入力不可にするには、Enabled=False 以外の方法で行いたいのです。 例えば、テキストボックスAで1と入れた場合、テキストボックスBの 初期表示1をBSで消しても、違う値をいれても、常に1に表示が戻される、 というようなものにしたいのですが…。 上記のようなものを作るには、どのように処理を作っていけば 良いのでしょうか? サンプル的なコードを教えていただけるとありがたいです。 よろしくお願いします。

  • テキストボックスに値を入力し終わったらイベントを発

    エクセル2007を使用しています。 アクセスで言う「更新後処理」のAfterUpdateイベントは エクセルのActiveXコントロールのテキストボックスイベントにはないのでしょうか? 例えば、テキストボックスに「aiu」と入力し終わったらイベントを発生させたいのですが、 Private Sub TextBox1_Change() MsgBox "" End Sub にしすると 「a」を入力した時点で、MsgBox が表示されてしまいます。 テキストボックスに値を入力し終わったらイベントを発生させる方法はありますか? VBE画面でシートイベントを見ても AfterUpdateイベントは見当たりません。 ご回答よろしくお願いします。