• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:チェックボックスとテキストボックスを連動させたい)

チェックボックスとテキストボックスを連動させたい - JavaScriptで簡単に実現する方法

このQ&Aのポイント
  • JavaScriptを使用してチェックボックスにチェックが入るとテキストボックスに数字の1を自動入力する仕組みを作りたいです。行数が多いため、一つの関数で実現する方法や配列を使用してデータを送信する方法を教えてください。
  • JavaScriptを使って、チェックボックスとテキストボックスを連動させる方法についてお教えいただきたいです。チェックボックスにチェックが入るとテキストボックスに数字の1を自動で入力したいです。また、データを配列で送信することもできるようにしたいです。
  • チェックボックスとテキストボックスを連動させるためのJavaScriptのコードを作成しています。チェックボックスにチェックが入ると、テキストボックスに数字の1を自動で入力する仕組みを実現したいです。現在は複数の関数を使用していますが、一つの関数で済む方法やデータを配列で送信する方法など、より効率的な実装方法を知りたいです。

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

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

ソース拝見しました。 テーブルなんですね?tdをdivでくくるのは文法違反なのでNGです。 テーブルは行ごとにTRで括られているのでそれを使いましょう。 要件としては同じ行の自分より後ろのテキストボックスに 値をいれるなら以下のようにできます。 またバリデータの絡みもあるかもしれないのでとりあえずcheckxとしておきます。 (適当に工夫して名前付けしてください) <script> function checkx(radio){ var f=radio.form; var tr=getParentNode(radio,'TR'); var td=getParentNode(radio,'TD'); for(var i=0;i<f.length;i++){ if(f[i].type=="text" && getParentNode(f[i],'TR')==tr && td.cellIndex < getParentNode(f[i],'TD').cellIndex) f[i].value=radio.checked?radio.value:""; } } function getParentNode(obj,nodename){ var n=obj.parentNode; while(n){ if(n.nodeName==nodename) return n; n=n.parentNode; } return null; } </script>

orion-ok
質問者

お礼

ありがとうございます。 おかげさまで無事に解決致しました。 非常に助かりました。

その他の回答 (1)

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

配置的にちかいところにあるなら、divなどまとめてしまうとよいでしょう <script> function check(radio){ var f=radio.form; for(var i=0;i<f.length;i++){ if(f[i].type=="text" && f[i].parentNode==radio.parentNode) f[i].value=radio.checked?radio.value:""; } } </script> <FORM METHOD="POST"> <div> <INPUT TYPE="checkbox" NAME="r" VALUE="1" onclick="check(this)">チェック1<BR> <INPUT NAME="data1[1]" SIZE="1"> <INPUT NAME="data1[2]" SIZE="1"> <INPUT NAME="data1[3]" SIZE="1"> <INPUT NAME="data1[4]" SIZE="1"><br> </div> <div> <INPUT TYPE="checkbox" NAME="r" VALUE="1" onclick="check(this)">チェック2<BR> <INPUT NAME="val5" SIZE="1"> <INPUT NAME="val6" SIZE="1"> <INPUT NAME="val7" SIZE="1"> <INPUT NAME="val8" SIZE="1"> </div> </FORM>

orion-ok
質問者

お礼

お礼が抜けていました。 ありがとうございました。

orion-ok
質問者

補足

ありがとうございます。 まさにこのとおりの動きです。 しかし、実サイトに導入するするとうまく動きません。 同時にバリデーションも行なっているせいでしょうか。 http://roba33.com/check/

関連するQ&A