• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:タグIDに変数を用いる)

ASP.NETでWIB開発におけるタグID変数の利用方法について

このQ&Aのポイント
  • ASP.NETでWIB開発をしている際に、タグIDに変数を用いて連続したタグ名+数字を参照する方法について質問があります。
  • 現在、表を表示する際に、DBから値を取得し、Lavelのtextをhtml文字列で書き換えています。
  • 決定ボタンが押された時にJavaScriptを呼び出し、チェックボックスのチェック有無を確認するロジックを実装していますが、タグIDに変数を追加した際に「メンバーでない」というエラーが表示されています。どのようにすれば連続したタグ名+数字を参照できるでしょうか。

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

  • ベストアンサー
  • q-ue
  • ベストアンサー率75% (12/16)
回答No.2

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++; } }

参考URL:
https://developer.mozilla.org/en-US/docs/DOM/HTMLFormElement
wendy0303
質問者

お礼

q-ueさま 報告が遅れまして、申し訳ありません。 無事、本件を解決し、目的とするものを作る事が出来ました。 ありがとうございました。

wendy0303
質問者

補足

q-ueさま、ありがとうございます。 変数"checkbox"の中に、id文字列を一度入れているのですね。 早速試してみます。 解決後、報告致します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

こそっと。 <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>

wendy0303
質問者

お礼

babu_baboo 様 ありがとうございます。 お礼が遅くなって申し訳ありません。 いただけましたソースは、forもwhileも使っていない為か、 チェックボックスが1個だけの場合でもチェックが正しく動きました。 実は今回の自分の遭遇したケースではチェックボックス数が動的に変わる為 自分ひとりではチェックボックスが1件のみの場合が上手く処理できず、 この回答は大いに参考になりました。 おかげさまで現在解決が出来ております。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • kool_noah
  • ベストアンサー率33% (95/285)
回答No.1

えっと、 >form1.checkbox[count].checrd form1.checkbox[count].checkedでは・・? 記載ミスだったらいいんですが、気になったので。

wendy0303
質問者

補足

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&A

  • 変数に値を引き渡すについて

    Win2000、JavaScript です。 入力フォームでチェックボックスがあります。 現在は... ------------------------- <script language="javascript"> <!--// var strSelectValue; function SetValueC2(objCheck) { strSelectValue = objCheck.value; } //--> </script> <BODY> <FORM METHOD="POST" NAME="MainForm"> <input type="checkbox" name="C2" value="1" onclick="SetValueC2(this)"> ------------------------- のように、同じフォーム上で チェックがされたら SetValueC2() へ 値 "1" を引き渡して、 変数 strSelectValue に値を入れています。 それを、 同じフォーム上ではなく function SetValueC2(objCheck) { strSelectValue = objCheck.value; } の部分を別ファイル(.js)へ引き渡ししたいのですが、 引き渡し方がわかりません。 多分 onclick="SetValueC2(this) の部分が違うと思うのですが... どなたか教えてください 宜しくお願いします。

  • テーブル内のチェックボックスを、全て選択、全て解除 したい

    以下のような、フォームの中にあるテーブル内のチェックボックスを一括して選択、解除したいのですが、どのように書けば良いのかが分かりません。 <form name="form1"> <table> <tr> <td><input name="array[]" type="checkbox" id="array[]" value="1">項目(1)</td> </tr> <tr> <td><input name="array[]" type="checkbox" id="array[]" value="2">項目(2)</td> </tr> <tr> <td><input name="array[]" type="checkbox" id="array[]" value="3">項目(3)</td> </tr> </table> </form> ↓これは自分で試したプログラムですが、うまく動きませんでした。 <SCRIPT TYPE="text/javascript"> <!-- var count; function BoxChecked(check){ for(count = 0; count < document.form1.array[].length; count++){ document.form1.array[][count].checked = check; } } //--> </SCRIPT> <INPUT TYPE="button" onClick="BoxChecked(true);" VALUE="全て選択"> <INPUT TYPE="button" onClick="BoxChecked(false);" VALUE="全て未選択"> ↓ここに載っているのを色々変更してみたのですが上手くいきませんでした。 http://www5e.biglobe.ne.jp/~access_r/hp/javascript/js_072.html よろしくお願いします。

  • 変数の記述について教えてください。

    こんにちは。 ご指導のほど、宜しくお願い致します。 javascriptで<form>のname="menu"を変数:formnameに 代入し、実行するように記述をしたいのですが どうもうまくいきません。 誤りの部分を教えて下さい。 <script Language="JavaScript"> <!-- var formname="menu"; // 本登録検索============================================== function itiran_onClick(){ document.+formname+.action" = "itiran.asp"; document.+formname+.submit()"; } ============================================== --> </script> <中省略> <form action="" method="post" name="menu"> <input type="text" name="TEST" value="1"> <input type="bottun" value="次へ" onclick="itiran_onClick()"> </form>

  • HTMLでのID

    <input type="checkbox" id="tohyokeka1" name="tohyokeka1" value="1"> <input type="checkbox" id="tohyokeka1" name="tohyokeka1" value="1"> <input type="checkbox" id="tohyokeka1" name="tohyokeka1" value="1"> という風にtohyokeka1というid="tohyokeka1"の配列を取得したいのですがどのように記述していいのかが分かりません。どなたか教えて頂けませんでしょうか? name="tohyokeka1" var formObj = document.getElementById("form"); var idObj = document.getElementById("tohyokeka1"); formObj.tohyokeka1.lengthや formObj.tohyokeka1[count]で、 name配列の数や配列が取得できるのですが、 idObjの配列の個数の取り方と配列の取得方法がわかりません。どなたかお願い致します。

  • フォームの上下に一括チェックボックスを置くには?

    HTML+Javascriptで、選択削除のフォームを作っています。 一覧の上下に一括チェックボックスを置きたいのですが上手く行かないのです。 -------------------- javascript↓ -------------------- //一括チェック用チェックボックス function allcheck() { var count = document.delete.chk.length; var allcheck = document.delete.chk_all.checked; for ( var i=0; i<count; i++) { var check = document.delete.chk[i].checked; if (allcheck == true) { document.delete.chk[i].checked = true; } else { document.delete.chk[i].checked = false; } } } //個別チェック用チェックボックス function check(onjCheck) { if (onjCheck.checked == false) { document.delete.chk_all.checked = false; return; } var count = document.delete.chk.length; for (var i=0; i<count; i++) { if (document.delete.name != "chk_all" && document.delete.chk[i].checked == false) { return; } } document.delete.chk_all.checked = true; } -------------------- HTML↓ -------------------- <form action="" name="delete"> <fieldset> <input type="checkbox" name="chk_all" id="all_head" onclick="allcheck(this)"> <label for="all_head">すべて選択/解除</label> <input type="submit" value="選択した項目を削除"> </fieldset> <fieldset> <input type="checkbox" name="chk" onclick="check(this)"> 項目1 <input type="checkbox" name="chk" onclick="check(this)"> 項目2 <input type="checkbox" name="chk" onclick="check(this)"> 項目3 </fieldset> <fieldset> <input type="checkbox" name="chk_all" id="all_foot" onclick="allcheck(this)"> <label for="all_foot">すべて選択/解除</label> <input type="submit" value="選択した項目を削除"> </fieldset> </form> このように記述しています。 上か下か、片方であれば一括チェックを実現できました。 当方Javascript初心者です。 よろしくご教示願います。

  • 変数の宣言?

    以下のように変数の練習をしていたのですが、document.aaa.y.valueを右辺に持ってこないやり方っていうのはあるのでしょうか? また、ifの中身についてなのですが、一応これでも動くんですけど文法的にはどうなのでしょう?お願いします <html> <head> <title>変数の練習</title> <script language="JavaScript"> <!-- function test() { var x= document.aaa.y.value; document.aaa.y.value=x*1+1; if (document.aaa.y.value == "10") { document.aaa.y.value=0; } } //--> </script> </head> <body> <form name="aaa"> カウント:<input name = "y" value=0> <input type="button" value ="+1" onClick = "test()" > </form> </body> </html>

  • IEで子ウインドウから親ウインドウへのタグの追加

    IEで子ウインドウから親ウインドウへのタグの追加 【やりたいこと】 1.親ウインドウからポップアップで子ウインドウを出して、その子ウインドウ内でチェックしたものを親ウインドウの<select>タグに<option>タグとして付け加えること。 2.同じくhiddenタグでチェックしたもののvalueを持たせたいということ。 とあるサイトを参考に、firefoxではこの挙動ができました。 ただ、IEだと親ウインドウに何も反映されなくて困っています。 以下ソース(一部)です。 --親html-- <head> <script type="text/javascript"> <!-- var w = window; function openWin(url) { if ((w == window) || w.closed) { w = open(url, "_blank", "width=800,height=600,scrollbars=yes"); } else { w.focus(); } return(false); } // --> </script> </head> <body> <select id="selectArea" size="5" name="search_area" class="list_box"> (ここに1.) </select> <div id="search_area"> (ここに2.) </div> <input type="button" onClick="return openWin('checkbox.php')" value="チェックをつける"> </body> --子html-- <input type="checkbox" name="department" value="c1" onclick="BoxCheckChild(this)"> <input type="checkbox" value="t1" onclick="BoxCheckChild(this)"> <input type="checkbox" value="s1" onclick="BoxCheckChild(this)"> 子htmlでは、onclickでチェックしたチェックボックスに対して処理をしています。 --javascript-- function appendOptionLast(str, value){//親ウインドウに<option>として追加(1.) var elOptNew = window.opener.document.createElement('option'); elOptNew.text = str; elOptNew.value = value; var elSel = window.opener.document.getElementById('selectArea'); var nstr = "<option value=aaa>test</option>" try { elSel.add(elOptNew, null); } catch(ex) { elSel.add(elOptNew) } function make_hidden(value){//hiddenタグ作成、追加(2.) var q = document.createElement('input'); q.type = 'hidden'; value = value.slice(1); if(type == "c"){ q.name = 'department[]'; }else if(type == "t"){ q.name = 'theme[]'; }else if(type == "s"){ q.name = 'index[]'; } q.value = value; window.opener.document.getElementById("search_area").appendChild(q); } となっています。 ソース、説明ともにわかり辛いかもしれませんが、どなたかわかる方いたら助けてもらえるとありがたいです。

  • チェックボックスの値を変数に (checkbox)

    ASP から以下のようなタグを吐き出させページに複数個 表示させました。 <FORM name = "mail_to_win"> <INPUT type="checkbox" name="mail[1]" value="A" > <INPUT type="checkbox" name="mail[2]" value="B" > <INPUT type="checkbox" name="mail[3]" value="C" >  ・  ・  ・ これを、JavaScript で参照、または変数に格納したいと 思います。 そこで以下のように書いたのですが、 alert(document.mail_to_win.mail[1].defaultValue); a = document.mail_to_win.mail[1].defaultValue; 「エラー'document.mail_to_win.mail'はオブジェクト ではありません。」 というエラーが出てしまいます。 実は配列に取り込みたいので、大量のチェックボックス にNo.をつける必要があります。 チェックボックスの値をJavaScriptの配列変数に 格納するにはどうしたらいいのでしょうか。

  • javascriptでチェックボックスの選択状況をチェックする方法につ

    javascriptでチェックボックスの選択状況をチェックする方法について質問です。 チェックボックスを <input type="checkbox" name="chk[]" value="1"> <input type="checkbox" name="chk[]" value="2"> のようにした場合、チェックボックスが1か所以上選択されているかどうかは、 var count = 0; for (var i=0;i<document.myform.elements['chk[]'].length;i++){ if(document.myform.elements['chk[]'][i].checked){ count++; } } if(count==0){ window.alert("チェックしてください!"); } のようにすればチェック可能ですが、inputタグで <input type="checkbox" name="chk1[]" value="1"> <input type="checkbox" name="chk1[]" value="2"> <input type="checkbox" name="chk2[]" value="A"> <input type="checkbox" name="chk2[]" value="B"> のように「name」の配列名が変化する場合はどのようにすればチェック可能でしょうか?

  • [javascript] checkboxによる合計の算出と表示について

    こんにちわ。 表記についてですが、javascriptによるcheckboxのvalue値を算出させようと悪戦苦闘しております・・・。 皆様のお知恵を拝借できればと思います。 至らない部分が多々あると思いますが下記に現在のソースを貼り付けますので、色々とご指摘いただければ幸いです。 (リアルタイム表示のためprototypeを使用しています。) <head><script src="prototype.js" type="text/javascript"></script> <script language="javascript"> function mprice(){ chn = 6; ttl = 0; for(i=0; i<chn; i++) { if(document.step2.elements[i].checked==true) { var pttl = ttl + eval(document.step2.elements[i].value); } else if(typeof(pttl) == "undefined") pttl = 0; } document.getElementById('pttlr').innerHTML = pttl + "円" } </script> </head> <body> <form name="step2"> <input type="checkbox" value="105" id="food" onClick="mprice()">コーラ<br /> <input type="checkbox" value="315" id="food" onClick="mprice()">肉<br /> <input type="checkbox" value="1050" id="book" onClick="mprice()">参考書<br /> <input type="checkbox" value="210" id="sweet" onClick="mprice()">飴<br /> <input type="checkbox" value="525" id="book" onClick="mprice()">マンガ<br /> <input type="checkbox" value="3150" id="music" onClick="mprice()">CD<br /> </form> <div id="pttlr">