- ベストアンサー
変数にフォーム名を指定したい
- JavaScriptでプルダウンメニューの項目を選択するとフォームにそのvalueを渡す方法を紹介します。
- フォームに変数を指定してputselect関数で使用する方法を示します。
- name属性だけでなくid属性を使用しても同じ動作を実現できます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まぁ考え方次第ですね。 putselect()が、別フォームの情報を取りに行く可能性があるなら 二つ引数は必要ですが、つねにobjと同じフォームから参照するなら 引数を一つにしてしまう方が良いかもしれません。 function putselect(obj){ var f=obj.form; f.elements["original"].value = obj.options[obj.selectedIndex].value; } <form> <input name="original"> <select onchange="putselect(this)"> <option >#作品の選択</option> <option value="a">A</option> <option value="b">B</option> <option value="c">C</option> </select>
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
formにnameをつけるのはあまりお勧めできません this.formでアクセスしてください。 フォーム内ならobj.formってかんじ
補足
ご指摘ありがとうございます。 このように変更しました。 function putselect(form,obj){ form.original.value = obj.options[obj.selectedIndex].value; } <form> <input name="original"> <select onchange="putselect(this.form,this)"> <option >#作品の選択</option> <option value="a">A</option> <option value="b">B</option> <option value="c">C</option> </select>
お礼
回答ありがとうございます。常にobjとおなじフォームです。 以下のようにすることで、やりたいことが出来るようになました。 ありがとうございます。 function putselect(obj,str){ var f=obj.form; f.elements[str].value = obj.options[obj.selectedIndex].value; } <form> <input name="original"> <select onchange="putselect(this,'original')"> <option >#作品の選択</option> <option value="a">A</option> <option value="b">B</option> <option value="c">C</option> </select>