- ベストアンサー
ASP.NETでWIB開発におけるタグID変数の利用方法について
- ASP.NETでWIB開発をしている際に、タグIDに変数を用いて連続したタグ名+数字を参照する方法について質問があります。
- 現在、表を表示する際に、DBから値を取得し、Lavelのtextをhtml文字列で書き換えています。
- 決定ボタンが押された時にJavaScriptを呼び出し、チェックボックスのチェック有無を確認するロジックを実装していますが、タグIDに変数を追加した際に「メンバーでない」というエラーが表示されています。どのようにすれば連続したタグ名+数字を参照できるでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
formにcheckboxプロパティはないと思います。 id がそれぞれに振ってあるので、それを使った場合は次のような感じです。 var i = 1; var lines = 3; var kensu = 0; var checkbox; for(;i<=lines;i++){ checkbox=document.getElementById('checkbox'+i); if (checkbox.checked){ kensu++; } }
その他の回答 (2)
- babu_baboo
- ベストアンサー率51% (268/525)
こそっと。 <form action="#"> <p>String1 :<input type="checkbox" id="checkbox1" value="String1"> <p>String2 :<input type="checkbox" id="checkbox2" value="String2"> <p>String3 :<input type="checkbox" id="checkbox3" value="String3"> <p><input type="button" value="決定" onclick="hoge.call(this)"> </form> <script> function hoge () { var chkbx = this.form.querySelectorAll ('input[type="checkbox"][id^="checkbox"]:checked'); alert(chkbx.length); } </script>
お礼
babu_baboo 様 ありがとうございます。 お礼が遅くなって申し訳ありません。 いただけましたソースは、forもwhileも使っていない為か、 チェックボックスが1個だけの場合でもチェックが正しく動きました。 実は今回の自分の遭遇したケースではチェックボックス数が動的に変わる為 自分ひとりではチェックボックスが1件のみの場合が上手く処理できず、 この回答は大いに参考になりました。 おかげさまで現在解決が出来ております。 ありがとうございます。
- kool_noah
- ベストアンサー率33% (95/285)
えっと、 >form1.checkbox[count].checrd form1.checkbox[count].checkedでは・・? 記載ミスだったらいいんですが、気になったので。
補足
Kool_noahさま、ありがとうございます。 ご指摘のcheckedは投稿時の記載ミスです。 さらにcountのインクリメントは Count=count+1; チェックがされたときの処理は Checkbox[count]. Valueの取得です。 Checkbox 1にチェックがあったら、string1を取得、といった感じです。 正確でない記載をして申し訳ないです。 いまどのような動きをするのかともうしますと、 Coint=1の時、checkbox[count]. Value で取得できるのが Checkbox2.value の値なのです。 その為、checkbox1が処理対象にできず 逆に最後のループで(おそらくcheckbox4を参照しようとし) エラーになります。 どうすれば、checkbox1~nを正しくチェックできるのか、が、 相談ないようでございます。
お礼
q-ueさま 報告が遅れまして、申し訳ありません。 無事、本件を解決し、目的とするものを作る事が出来ました。 ありがとうございました。
補足
q-ueさま、ありがとうございます。 変数"checkbox"の中に、id文字列を一度入れているのですね。 早速試してみます。 解決後、報告致します。