• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数にフォーム名を指定したい)

変数にフォーム名を指定したい

このQ&Aのポイント
  • JavaScriptでプルダウンメニューの項目を選択するとフォームにそのvalueを渡す方法を紹介します。
  • フォームに変数を指定してputselect関数で使用する方法を示します。
  • name属性だけでなくid属性を使用しても同じ動作を実現できます。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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>

fugur
質問者

お礼

回答ありがとうございます。常に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>

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

formにnameをつけるのはあまりお勧めできません this.formでアクセスしてください。 フォーム内ならobj.formってかんじ

fugur
質問者

補足

ご指摘ありがとうございます。 このように変更しました。 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>

関連するQ&A