• ベストアンサー

隠しフォーム(hidden)を使いたい

こんにちは。今、HTMLで困っています。 今までは1つのテキストボックスに4桁の値を入力しCGIにその値を飛ばしていたのですが今回テキストボックスを4つ作りそこに1桁づつ入力させてCGIにその4桁を飛ばせたいのです。そこで見た目上では4つのテキストボックスの中に1桁づつ入れ、実際はhiddenで隠した方にその4つのテキストボックスで入力した値を結合させてそれをCGIに飛ばせたいのです。 たとえば・・・ (1)(2)(3)(4)←こうようにテキストボックスに1桁づつ入力。 実際CGIに渡される値は1234。 調べてみたのですが値の結合まではわかりませんでした。 この方法を知っているかたよろしくお願いします。

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

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

[test.js]ファイル function setHidden(frm){ str = frm.data1.value + ""; str = str + frm.data2.value + ""; str = str + frm.data3.value + ""; str = str + frm.data4.value + ""; frm.hdn.value = str ; } [test.html]ファイル <html> <script src="./test.js"></script> <body> <form name="xxx"> <input type="text" name="data1" value="" onChange="setHidden(xxx)"><br> <input type="text" name="data2" value="" onChange="setHidden(xxx)"><br> <input type="text" name="data3" value="" onChange="setHidden(xxx)"><br> <input type="text" name="data4" value="" onChange="setHidden(xxx)"><br> <input type="text" name="hdn" value=""><br><!-- 動きを確認した後に type="htdden"に変更してください --> </form> </body> </html> 一応↑で動きました。二つのファイルを同じフォルダに入れて確認してみてください。 一つのファイルにしたければfunctionのぶぶんをhtml内に記述する必要があります。 『JavaScriptは使いたくない』でしたら…解りかねます… ちなみに +""は消さないで下さい。 (算術計算されてしまう恐れがあります…)

jun2249
質問者

お礼

ありがとうございます。 動きまで確認できてすごくわかりやすかったです。 でも実際認識してる値をいれてみたんですが上のように変更してからそのコードはありません。みたいにエラーが返ってきてしまいました。 なぜなのでしょう?

その他の回答 (2)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

<form action="http://www.google.com/search" onsubmit=' this.q.value = "" + this.elements[0].value + this.elements[1].value + this.elements[2].value + this.elements[3].value; '> <input type=text><br> <input type=text><br> <input type=text><br> <input type=text><br> <input type=hidden name="q"> <input type=submit> </form>

jun2249
質問者

お礼

こんにちは。 ありがとうございました。 todo36さんに回答いただいたものも試してみましたがやはりエラーとして戻ってきてしまいました.....(;;)

回答No.1

CGI側で結合するのでは ダメなのですか。

jun2249
質問者

補足

早い回答ありがとうございます。 CGIはできれば触りたくないのです。 なのでHTMLでの方法が知りたいのです。