質問 |
||
| 質問者:ny_cs | テキストフィールドへの値の表示 | |
|---|---|---|
困り度:
|
JavaScript初心者です。現在、言語習得のためのドリルをおこなっておりますが、2つのテキストフィールド間での値の受け渡しがうまくいきません。具体的には、上下2つのテキストフィールドがあり、上のフィールド(摂氏)に数値を入れボタンを押したタイミングで、その値を華氏に変換して下のフィールドに結果の値が表示される、またその逆もあり、というプログラムを作成したいのです。 テキストフィールドのvalueに値を格納すればよいのかと思い、いろいろな箇所で値を格納してみたのですが、うまく動きません。アドバイスをよろしくお願いいたします。 <html> <head> <script type="text/javascript"> var cel; var fah; function cel_to_fah( ) { cel=document.getElementById("c").value; fah=(9 * cel / 5) + 32 //document.write(fah); document.input_fah.c.value=fah; //return fah; } function fah_to_cel(){ fah= document.getElementById("f").value; cel= 5 * (fah - 32) / 9; //document.write(cel); document.input_cel.f.value=cel; //return cel; } </script> </head> <body> <form id="input_fah" action="./hw06-3.html" > Celsius: <input type="text" id="c" size="20" > <input type="button" onclick="cel_to_fah()" value="To Fahrenheit"/><br/><br/> </form> /* <script language="JavaScript"> document.input_fah.c.value=cel_to_fah(); </script> */ <form id="input_cel" action="./hw06-3.html" > Fahrenheir: <input type="text" id="f" size="20"> <input type="button" onclick="fah_to_cel()" value="To Celsius" /><br/><br/> </form> /* <script language="JavaScript"> document.input_cel.f.value=fah_to_cel( ) </script> */ </body> </html> |
|
質問投稿日時:08/07/01 12:58 質問番号:4142942 |
||
回答良回答20pt |
|
| 回答者:taloo | document.input_fah.c; この書き方は<form name="input_fah">の中の<input name="c">に有効です。 *<form>にname属性を使っていないときは、この書き方はできません document.getElementById('c') この書き方は<input id="c">に有効です。 *formタグ関係なし document.getElementsByName('c') この書き方は<input name="c">に有効で、これは配列になります。 (厳密には配列ではありませんが、配列と同じようにdocument.getElementsByName('c')[0]でアクセスできます。) *formタグ関係なし <form>のname属性は<input name="name">と重複してしまうため、非推奨となっています。 かわりに、 <body>の中の<form>の順番で、document.forms[0].cという書き方をしたり、 <form id="input_fah"><input name="c"> idを付けておくと、document.forms['input_fah'].cという書き方が使えます。 いろんなパターンを書くと混乱されるかもしれませんが、、、教科書の説明って、どこまで書かれてるんでしょうか。。。 いずれにしても、どれかに統一しておくと、あとで読みやすいと思います。 あと、/* コメント */ の書き方が間違ってます。 //return cel; /* document.input_cel.f.value=fah_to_cel( ) */ やろうとしてることは間違ってはいないと思いますが、この方法でやるにはちょっと難しいかな、と思います。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/07/01 16:52 回答番号:No.3 |
|
| この回答へのお礼 | いろいろなサイトをみて、サンプルコードをつぎはぎで利用した結果、こんなになってしまいました。 idなのかnameなのか、意識する必要があることを認識しました。ありがとうございます。とても参考になりました。 |
回答 |
|
| 回答者:SAYKA | scriptの書き方がおかしい気がするんだけど?(主にbody内) http://www.tohoho-web.com/js/write.htm http://www.tohoho-web.com/js/index.htm |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/07/01 15:15 回答番号:No.2 |
|
| この回答へのお礼 | ありがとうございました。参考になりました。 |
回答良回答10pt |
|
| 回答者:mo_gu | document.input_fah.c.value document.input_cel.f.value これを document.getElementById("c").value document.getElementById("f").value に変更してみてください。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/07/01 13:15 回答番号:No.1 |
|
| この回答へのお礼 | ありがとうございました。参考になりました。 |