• 締切済み

Javascriptで formが未定義?

初心者なので稚拙な質問ですみません function count_chkA(form) { var totalA = 0; var max = form.chk_box_An.length; for (var index = 0; index < max; index++) { if (eval("document.area_chk.chk_box_An[" + index + "].checked") == true) { totalA += 1; } } alert("あなたのタイプは、 " + totalA + " です。"); と記述して <input type=button value="Aを判定する" onClick="count_chkA(form)"> で内容を表示さえたいのですが count_chkAが定義されていないと出てしまいます ついでですが chk.chk_box_Anの内容によって表示する二種類を選びたいですが、方法が判りませんので、これについても教えていただければ大変助かります

みんなの回答

回答No.3

>回答No.2 amanojaku1 ちゃんと配列が有るかチェックした方が良いと思います。 >var max = form.chk_box_An.length; ↑この次に行に下記の行を記述してみて下さい。 alert("max = "+max);

回答No.2

>count_chkAが定義されていないと出てしまいます 「function count_chkA」の最後の終わり波括弧が無いです。 function count_chkA(form) { var totalA = 0; alert("あなたのタイプは、 " + totalA + " です。"); var max = form.chk_box_An.length; for (var index = 0; index < max; index++) { if (eval("document.area_chk.chk_box_An[" + index + "].checked") == true) { totalA += 1; } } alert("あなたのタイプは、 " + totalA + " です。"); } // ←最後の終わり波括弧が無いです。

  • t_ohta
  • ベストアンサー率38% (5086/13298)
回答No.1

質問に書かれているプログラムだけを実行すると「count_chkAが定義されていない」にはなりません。 質問に書かれていない部分に問題あると思われます。

masarun53406
質問者

補足

IEの開発ツールでなぜ定義されていませんとなるのでしょう onClick="count_chkA(form)"のcount_chkAが赤くなるです ちなみにformを複数宣言して(form1, form2)いますが、これは間違いですか?

関連するQ&A

  • このスクリプトは動かないですね

    初心者ですみません 複数の変数をそれぞれ違う数値以下だったらAを表示し、それ以上ならBを としたいです 書いてみたスクリプトは function count_chkB(form) { var totalB = 0; var max = form.chk_box_Bn.length; for (var index = 0; index < max; index++) { if (eval("document.area_chk.chk_box_Bn[" + index + "].checked") == true) { totalB += 1; } } if totalB < 4; alert("あなたタイプは、 " + B2 + " です。"); else alert("あなたのタイプは、" + B1 + "です"); } どうかよろしくお願いします

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

    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初心者です。 よろしくご教示願います。

  • javascriptのsubmitを使ってデータをpost送信したい。

    javascriptのsubmitを使ってデータをpost送信したい。 aaa.phpというファイルに複数のチェックボックスがあり、リンクをクリックしたときに チェックされた値のみをbbb.phpへ引き渡したいです。 自分なりに書いてみましたが、bbb.phpへは遷移するものの、データが表示されません。 document.form1.method部分をGETにすると、データは表示されますが、POSTにすると うまく引渡しができません。 的外れな書き方をしているかもしれませんが、どなたかご教授いただけませんでしょうか? よろしくお願いいたします。 【追記】 チェックボックスの数は固定ではなく変動があり、値も実際はランダムです。 デザインの都合上どうしてもaタグでしか記述が出来ません。 ------------------------------------------------------------------------------ 【aaa.php】 <script language="JavaScript"> <!-- function mailform() {  var i = 0;  var chkvalue = "";  var count = 0;  var chk = document.getElementsByName('no');  for(i=0; i<chk.length; i++) {   if (chk[i].checked == true) {    chkvalue += chk[i].value;    count++;   }  }  if(count == 0) {   alert("チェックされていません。");   return false;  } else {   document.form1.action = "./bbb.php";   document.form1.method="post";   document.form1.submit();  } } //--> </script> <a href="#" onClick="send()">bbb.phpへ遷移する</a> <form name="form1">  <input type="checkbox" name="no" value="1"><br />  <input type="checkbox" name="no" value="2"><br />  <input type="checkbox" name="no" value="3"><br />  <input type="checkbox" name="no" value="4"><br /> </form> 【bbb.php】 var_dump($_POST["no"]);

  • 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」の配列名が変化する場合はどのようにすればチェック可能でしょうか?

  • form内に2つ以上のブロック要素があるとjavascriptが動作し

    form内に2つ以上のブロック要素があるとjavascriptが動作しません。 タイトルの通りですが、form内にラジオボタンとチェックボクスをdivで1つだけ囲むと ラジオボタンで選択した箇所の2つのチェックボックスが有効になるようにはしたんですが、 デザインの為にこれをラジオボタンとチェックボックスとそれぞれ<div>で囲むとjavascriptが動かなくなります。 javascriptの書き方を変えれば行けるような気がするのですがギブアップしました。 どなたかここを有効に出来るようなスクリプトを教えていただけないでしょうか。 初歩的な質問で申し訳なく思いますが、どうかよろしくお願いいたします。 <html> <head> <title>test</title> <SCRIPT TYPE="text/javascript"> <!-- function checkfunc(){ var f=document.getElementById("chkbtn"); for(var i=0;i<f.length;i++){ if(f[i].type=="checkbox"){ f[i].disabled=true; //チェックを元に戻す f[i].checked = true; } } for(var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].checked){ var n=f[i].parentNode.firstChild; //ラジオボタンのvalue値でカテゴリを判断 var radio_now = f[i].value; while(n){ if(n.nodeName=="INPUT" && n.type=="checkbox") n.disabled=false; n=n.nextSibling; } } } } // --> </SCRIPT> <style type="text/css"> <!-- #wrap{ width: 170px; margin: 0 auto; } .radio_style{ color: #fff; width: 150px; background-color: #505050;; } .detail{ margin-left: 10px; } --> </style> </head> <body onload="checkfunc()"> <div id="wrap"> <form id="chkbtn" action="#"> <div class="radio_style"> <input type="radio" name="now" value="1" onclick="checkfunc()" onkeypress="checkfunc()" checked="selected" />宿泊<br /> </div> <div class="detail"> <input type="checkbox" id="h1box" checked="selected" />&nbsp;&nbsp;ホテル<br /> <input type="checkbox" id="h2box" checked="selected" />&nbsp;&nbsp;ビシネスホテル<br /> </div> <div class="radio_style"> <input type="radio" name="now" value="2" onclick="checkfunc()" onkeypress="checkfunc()">グルメ </div> <div class="detail"> <input type="checkbox" id="g1box" checked="selected" />&nbsp;&nbsp;うどん<br /> <input type="checkbox" id="g2box" checked="selected" />&nbsp;&nbsp;そば<br /> </div> </form> </div> </body> </html>

  • java script フォームのチェックボックス入力制限について

    java script フォームのチェックボックス入力制限について どなたかお教えください。 以下のコードを書き換えて、現状では1つのチェックボックスを複数にし(かつ、複数選択可にし)、チェックボックスをチェックした場合のみ「選択肢」ラジオボタンがアクティブになる仕様にしたいと考えております。 サイト上で見つけたサンプルコードをいじっているのですが、何分素人なのでうまく行きません。どなたか助けていただけると助かります。 よろしくお願いします。 <script type="text/javascript"> function fchk3(obj){ var frm=obj.form; var len=frm.elements.length; if(obj.checked==true){ for(var i=0; i<len; i++){ if(frm.elements[i].type=="radio"){ frm.elements[i].disabled=false; } } }else{ for(var i=0; i<len; i++){ if(frm.elements[i].type=="radio"){ frm.elements[i].checked=false; frm.elements[i].disabled=true; } } } } </script> <form name="form3" action="#"> <label for="chk3"><input type="checkbox" id="chk3" name="chk3" onclick="fchk3(this)" checked="checked" />このボタンのチェックを外すとラジオボタンが無効化</label><br /> <label for="chk3_r1"><input type="radio" id="chk3_r1" name="r1" />選択肢</label> </form>

  • form で、チェックボックスにまとめてチェック

    データベースから、データを持ってきて、複数のグループに分けてまとめてチェックを入れようとしています。 複数のチェックボックスがある場合はいいのですが、チェックボックスが一つしかない場合に チェックが入りません。 どの様に変更すれば、一つでもチェックが入るようになるでしょうか? 以下の様なサンプルコードを見ながら、作成しています。 function AllChecked1(){ var check = document.form.a1.checked; for (var i=0; i<document.form.elements['aa1[]'].length; i++){ document.form.elements['aa1[]'][i].checked = check; } } <form name="form" method="POST" action="select1.php"> <input type="checkbox" name="a1" id="a1" onClick="AllChecked1();" /><label for="a1"> group1 全選択</label> <input type="checkbox" name="aa1[]" id="aa11" value="1" /><label for="aa11">名前1</label><br /> </form> よろしくお願いいたします。

  • JavaScriptで配列を取得したい

    お世話になります。 データベースから取得したリスト(可変)をフォームに設定したところ、 JavaScriptで配列を参照したところ、リストが1件の場合はエラー、 3件の場合は正常という現象がおき、困っております。 リストが1件の場合でも、配列に認識させたいのですが、 他の箇所も記述が多いためシンプルな手法を探しています。 よろしくお願い致します。 3件のレコードの場合、正常に処理される。 ---- HTML内 -------------- <input type="checkbox" name="chk_sel"> <input type="checkbox" name="chk_sel"> <input type="checkbox" name="chk_sel"> ---- JavaScript内 -------------- function test(){ var obj = document.form1.chk_sel; if (obj != null) { for(i=0;i<obj.length;i++){ if(obj[i].checked == true){ check_num++; } } } } ----------------------------- ■1件のレコードの場合、エラーになる (配列に認識されないらしく、obj.lengthが取得できない) ---- HTML内 -------------- <input type="checkbox" name="chk_sel"> ---- JavaScript内 -------------- function test(){ var obj = document.form1.chk_sel; if (obj != null) { for(i=0;i<obj.length;i++){ if(obj[i].checked == true){ check_num++; } } } } -----------------------------

  • チェックボックスのlengthについて

    チェックボックスで以下のソースでは obj.length=[undefined] と表示されます。1という結果ではないのでしょうか? <script type="text/javascript"> <!-- function test(obj){ alert('obj.length=[' + obj.length + ']'); } // --> </script> <form name="test_form"> <input type="checkbox" name="chk" value="">チェック1 <input type="button" value="テスト" onClick="test(document.test_form.chk)"> </form>

    • ベストアンサー
    • HTML
  • htmlのformの表示について【Jquery】

    <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script> <script type="text/javascript"> function formChanged(ev){ var sel = $('.chk:checked').map(function () { return this.checked ? this.value : null; }).get().join(); $("#output").text(sel); } formChanged(null); $(document).on("change",'.chk:checked',formChanged); </script> <form method="post" action="mail.php"> <table> <tr> <th>カテゴリー</th> <td> ・ABC: <input type="checkbox" name="カテゴリー[]" value="[abc]" class="chk" /> ・DEF: <input type="checkbox" name="カテゴリー[]" value="[def]" class="chk" /> ・GHI: <input type="checkbox" name="カテゴリー[]" value="[ghi]" class="chk" /> </tr> <tr> <th>選択した製品シリーズ</th> <td><span id="output"></span></td> </tr> <tr> </table> </form> これは、チェックボックスにチェックをいれたチェックボックスの値がリアルタイムに表示される仕組みなのですが、逆にチェックを外した場合は、値が消えません。消えるようにするにはどうしたらいいでしょうか。アドバイスをいただけると幸いです。