プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (5件)

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>

参考まで
    • good
    • 0
この回答へのお礼

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>

という書き方ではまずいのでしょうか?
すみませんが見て頂けると助かります。

お礼日時:2001/03/07 11:15

ダブルクォーテーションの中にダブルクォーテーションは使えないので、



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タグの位置の問題で、ネスケで正常に動作しないと思いますが、その辺りはブラウザを再読込しながら色々試してみると良いかと思います。
(この辺りがネスケの苦労するところ、苦笑)

参考まで
    • good
    • 0
この回答へのお礼

何度も回答してもらってありがとうございました。
エラー直りました!!
でもネスケで全然動いてくれない・・・
IEでは正常に動いてくれるのですが(涙)
色々試してみたのですがまだ無理です。

再度色々試してみたいと思いますが、どうしても無理な
時はまた質問という形をとってもよろしいでしょうか?

hequilさんには何度もご迷惑をおかけしていると思いますが
どうぞ宜しくお願い致します。

お礼日時:2001/03/07 19:49

ものすごくシンプルに書くとこんな感じになります。


※「<」と「>」は実際には半角で書いて下さいね。

<form name="sample">
<input type="text" name="in_box" onChange="document.sample.out_box.value=this.value;">
<input type="text" name="out_box">
</form>

参考まで

この回答への補足

とてもわかりやすい説明ありがとうございました!!
試してみたところうまくいきました。
そこでもう一つなのですが、同じ処理を
入力は

<input type="text" name="in_box" onChange="document.sample.out_box.value=this.value;">

のテキストボックスで、その変更された値を表示するのは
テキストボックスではなくて

<td><b><font>ここに値が入ります</font></b></td><br>

にしても同じような事は可能でしょうか?
すみませんがよろしくお願いします。

補足日時:2001/03/06 19:07
    • good
    • 0

すみません、確認画面ではちゃんと表示されてたんですが、わけわかんないソースになってしまってますね。



&lt;:<
&gt;:>

とそれぞれ読み替えてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/03/06 19:10

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;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!