• 締切済み

現在javascriptでチェックボックスで選択した項目のvalueを

現在javascriptでチェックボックスで選択した項目のvalueを次ページに渡すものを作成しています。 1つだけ選択すると正常に値が動くのですが、複数選択すると後に選択したほうの値だけが入ってしまいます。 複数選択した場合に選択した全てのvalueが入るようにするにはどうしたらいいでしょうか? 【1ページ目ソース】 <html> <head> <title>1page</title> </head> <body> <form name="F1" onsubmit="window.open('2page.html','_blank','');return false;"> A<input type="text" id="tanka1"> B<input type="checkbox" name="che1" id="check1" value="1">1 <input type="checkbox" name="che1" id="check1" value="2">2 <input type="checkbox" name="che1" id="check1" value="3">3 <input type="submit" value="送信" onclick=check();></form> </body> </html> 【2ページ目ソース】 <html> <head> <title>2page</title> <script> window.onload=function (){ document.F2.tanka1.value=window.opener.document.F1.tanka1.value; if (window.opener.document.F1.che1[0].checked)document.F2.check1.value=1; if (window.opener.document.F1.che1[1].checked)document.F2.check1.value=2; if (window.opener.document.F1.che1[2].checked)document.F2.check1.value=3; } </script> </head> <body> <form name="F2"> A<input type="text" id="tanka1"> B<input type="text" id="check1"> <br><br> </body> </html>

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

> やはり加算するのは難しいのですかね・・・ 加算も連結も+記号で記述するからなんですよね。 VBScriptなら「&記号」が連結なんですが。 やはり 変数を宣言して[0で初期化して]加算、加算結果を判断してからdocument.F2.check1.valueに代入するのが良いでしょうね。

aia2570
質問者

お礼

変数を宣言して加算していって最後に代入でうまくいきました! ありがとうございましたm(o・ω・o)m

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> チェックを入れた項目の値を足して出力させたいです。 「どれもチェックされてない場合」を0としてますが、必要に応じて別途考慮してください。 試験してないので動かなかったらごめんなさい。 document.F2.check1.value=0; if (window.opener.document.F1.che1[0].checked)document.F2.check1.value=document.F2.check1.value+1; if (window.opener.document.F1.che1[1].checked)document.F2.check1.value=document.F2.check1.value+2; if (window.opener.document.F1.che1[2].checked)document.F2.check1.value=document.F2.check1.value+3; 変数を宣言して加算、加算結果を判断してからdocument.F2.check1.valueに代入するのが良いでしょうね。

aia2570
質問者

お礼

ありがとうございます! どれもチェックしていない場合は、空欄のままにするのでdocument.F2.check1.value=0; は無しでやろうかと思います。 これで実行すると、1と2にチェックが入っていた場合、2ページ目には「12」と表示されてしまいますね。加算ではなく、+○の○をそのまま表示している感じです。 やはり加算するのは難しいのですかね・・・

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> 複数選択すると後に選択したほうの値だけが入ってしまいます。 document.F2.check1.valueのこと? if (window.opener.document.F1.che1[0].checked)document.F2.check1.value=1; if (window.opener.document.F1.che1[1].checked)document.F2.check1.value=2; if (window.opener.document.F1.che1[2].checked)document.F2.check1.value=3; で代入(=置換)しているので、チェックが複数あっても最後に評価した値のみになりますね。 みっつともチェックされている場合のdocument.F2.check1.valueを どうしたいのですか?

aia2570
質問者

お礼

早速の回答ありがとうございます。 3つともチェックされていたらdocument.F2.check1.valueには6が入るようにしたいです。 チェックを入れた項目の値を足して出力させたいです。

関連するQ&A

専門家に質問してみよう