ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者: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
この回答へのお礼ありがとうございました。参考になりました。
 
最新から表示回答順に表示良回答のみ表示