• ベストアンサー

hiddenに値を設定する方法

いつもお世話になります。 selectboxの選ばれている項目の番号、いわゆるselectedIndexをhiddenに設定してsubmitで取得したいのですが、エラーがでてしまいます。 いまいちhiddenの使い方もわかっていないので見当違いな書き方をしているかもしれませんが、 現在の状態を以下に示しますのでご指導よろしくお願いします。 [javascriptの中] function err(){ document.myForm.NaNo.value = myForm.cbName.selectedIndex; } [htmlの中] <body onLoad=err()> <form name="myForm" method="post"> <select name="cbName"> <option value=""><br></option> <option value="花子">花子 <option value="和子">和子 <option value="良子">良子 </select> <input type="hidden" name="NaNo">

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

  • ベストアンサー
noname#3345
noname#3345
回答No.2

関数の呼び出しを、 <body onLoad=err()> のままにしていませんか? bodyの読み込み時に設定しても、その時点ではセレクトは選ばれていないわけですから「0」にしかなりません。 onLoadイベントを削除して、#1さんのおっしゃっているようにsubmitボタンにonClickイベントで設定するか、SelectタグにonChangeで設定すれば動作します。 windows2000、IE5.0で確認しました。 もしそれで動かないようなら、動かないソースを提示してみてください。

tam2-y
質問者

お礼

ありがとうございました。 function err()の中から出したらうまくいきました。

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

その他の回答 (1)

  • HUTABA
  • ベストアンサー率27% (436/1611)
回答No.1

取得したいのはIndex番号なんですよね? それならこれで正常に動作していると思いますよ。  document.myForm.NaNo.value = myForm.cbName.selectedIndex; の下に、  alert(document.myForm.NaNo.value); と追加してみてください。 現在document.myForm.NaNo.valueに入っているデータを表示してくれます。 それから、「submitで取得したい」との事ですが、それならonLoadだけでは駄目ですね。 ご質問では抜けてしまっているようですが、ボタンを押された時にもerr()を呼び出さないといけません。 <input type="hidden" name="NaNo"> と </BODY> の間に <INPUT TYPE="button" VALUE="SUBMIT" onClick="err();"> </FORM> と追加してみてください。

tam2-y
質問者

補足

早速ありがとうございます。 おかげ様でIndexは取ってきているようです。しかし、どれを選択していても0になってしまっているのです。 原因がおわかりになられますでしょうか?

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

関連するQ&A