チェックボックスの制限について

このQ&Aのポイント
  • 質問者は前任者から引き継いだ業務でJavaScriptを記述する必要があり、スキルが追い付かずに締切に追われています。
  • 質問者は特にif文内の'I_O_W_'という部分の意味がわからず、EBA_I_O_W_EBL_IN_2がクエリの名前なのかどうかも疑問に思っています。
  • 質問者はこのコードの解説をしてくださる方を探しています。
回答を見る
  • ベストアンサー

チェックボックスの制限

scriptについて質問です。 前任者から引き継いだ業務で、JAVA scriptを記述しなければ ならなくなりましたが、スキルが追い付かないまま締切をむかえてしまいました 。 下記記述なのですが、2行目のif文の意味がさっぱりです。 特に行中の”I_O_W_”がなにを示すのかわかりません。 EBA_I_O_W_EBL_IN_2までがクエリの名前なのでしょうか? var str; str = CHK_EBA_STA; if(str.match(/EE1/)){if(!(document.%formname.EBA_I_O_W_EBL_IN_2.checked)){alert(" ルーブルのチェックは必須");return("EBL_IN_2");}} どなたかご解説いただけるかた、なにとぞ、よろしくお願いいたします。

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

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.1

・ これだけでは情報が不十分かと思われますが、HTMLのソースコードを確認してみてください。 ・ EBA_I_O_W_EBL_IN_2は、フォームにある、チェックボックスかラジオボタンの名前(name属性の値)で、 ・ if文は、概略 「もし、文字列CHK_EBA_STAが文字列EE1を含んでいて、フォーム%formnameのチェックボックスEBA_I_O_W_EBL_IN_2にチェックが入ってなければ、」 ということになります。

cb1986
質問者

お礼

情報量が足りなくご迷惑をおかけしております。 HTMLソースですね、そっか、確認してみます。 やはり通常だとEBA_I_O_W_EBL_IN_2までがチェックボックス名なの ですね・・・ if文の概略、非常に参考になりました。 どのJAVAscript解説書より参考になりました。 ありがとうございます!

関連するQ&A

  • 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>

  • チェックボックスの無効化、有効化

    あるサイトを参考にチェックボックスの無効化、有効化を実装したいと考えています。 ソースは以下の通りなのですが、この場合、name属性にそれぞれ異なる番号(t1、t2、t3やc1、c2、c3)が振られている必要がありますが、 これを同じnameに統一して動作させるには、どのように記述したらよいのか教えて頂けませんでしょうか? nameのtとcを統一したいのではなく、t1、t2、t3を番号抜きのtに統一、c1、c2、c3を番号抜きのcに統一したいと思っています。 <script type="text/javascript"> function fchk2(obj, name) { var frm=obj.form; if(obj.checked==true) { /* チェックボックスが選択されている場合は、 テキストボックスを有効化(false) */ for(var i=1; i<=3; i++){ frm.elements[name+i].disabled=false; } } else { for(var i=1; i<=3; i++){ /* 無効化する前に、入力値をクリア */ if(name=='t'){ /* テキストボックスの場合 */ frm.elements[name+i].value=""; }else{ /* チェックボックスの場合 */ frm.elements[name+i].checked=false; } /* 無効化(true) */ frm.elements[name+i].disabled=true; } } } </script> <form name="form2" action="#"> <label for="chk1"><input type="checkbox" id="chk1" name="chk1" value="1" onclick="fchk2(this,'t')" checked="checked" />テキストボックスの無効化・有効化を切替(チェックを外すと無効化)</label><br /> <input type="text" name="t1" value="テキストA" size="20" /> <input type="text" name="t2" value="テキストB" size="20" /> <input type="text" name="t3" value="テキストC" size="20" /> <hr /> <label for="chk2"><input type="checkbox" id="chk2" name="chk2" value="1" onclick="fchk2(this,'c')" checked="checked" />チェックボックスの無効化・有効化を切替(チェックを外すと無効化)</label><br /> <input type="checkbox" name="c1" value="1" />選択肢A<br /> <input type="checkbox" name="c2" value="1" />選択肢B<br /> <input type="checkbox" name="c3" value="1" />選択肢C </form>

  • アクセス制限

    以下スクリプトは$denyに拒否したいリストを記述するのですが、$denyに記述したリストのみをアクセス許可にしたいと思っています。試しに2行目の$flag=0;を$flag=1;にし、4行目$flag=1;を$flag=0;にしましたところ、$denyに記述したリストのみアクセス許可することができたようですが、これで問題ないでしょうか?よろしくお願いいたします。 if ($deny) { $flag=0; foreach (split(/\s+/, $deny)) { if ($host =~ /$_/i) { $flag=1; last; } } if ($flag) { &error("コメント") } }

    • ベストアンサー
    • Perl
  • チェックボックスのチェック方法

    チェックボックスのチェック方法でつまずいています。 以前の質問を参考にここまで作りましたがどうしても解決しないので 教えてください checkboxはPHP側でDBより取得したデータを表示するため件数分作成します 検索ボタンで表示した件数を絞り込むことを可能にしています 表示件数が20や10や5等は問題なくチェックされますが 表示件数が1の場合 elの戻り値が"undefined"になりうまく動作しません ほかの場合はelの戻り値は表示件数分になっています <form name=frm method=post action=/beta/index.php> <input type=checkbox name=sebchk[] value=1112236589> <input type=checkbox name=sebchk[] value=1112236590> <input type=submit name=sub_srch value=検 索> <input type=submit name=sub_kan value=実行 onClick="return chk_kan();"> <script language="JavaScript"> <!-- function chk_kan(n) { var sebchk_ok = 0; var el; var i; el = document.frm.elements['sebchk[]']; if ( typeof el == "undefined") { alert('該当データがありません。'); return false; } for (i = 0; i < el.length; i++) { if (el[i].checked == true) { sebchk_ok = 1; } } if (sebchk_ok == 0) { alert('チェック項目が未選択です。'); return false; } /* proceed ? */ if (confirm('処理を行います。\nよろしいですか?')) { return true; } return false; } //--> </script> 解りづらいとは思いますが宜しくお願いします

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

    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初心者です。あつかましい質問で申し訳ありません。 他のページのサンプルを参考にしてチェックを入れた時はにチェックを入れると文字が表示されるチェックボックスを作成しました。更にチェックはひとつしか出来ないというjavascriptも拾ってきて組み合わせたのですが、チェックを付けてとなりにチェックを入れた時はじめに表示された文字が消えません。教えてください。 <script type="text/javascript"> var before = null; function test(e) { var tgt = e.srcElement ? e.srcElement: e.target; if (before == tgt && tgt.checkd == true) { tgt.checked = true; } else { var chks = document.getElementsByName('chkgroup'); for (var i = 0; i < chks.length; i++) { if (chks[i] != tgt) chks[i].checked = false; } } before = tgt; } <!-- function output(){ var str=""; var chkboxes=document.getElementsByName("chkgroup"); for(var i=0;i<chkboxes.length;i++){ var obj=chkboxes[i]; if (obj.checked){//チェックされていたらstrにvalue属性の文字列を追加する str+=obj.value; } } document.getElementById("result").innerHTML=str; } window.onload=function(){ var chkboxes=document.getElementsByName("chkgroup");//チェックボックス(chkgroup)を配 列で取得 for(var i=0;i<chkboxes.length;i++){//ループでチェックボックス全てにイベントハンドラを 設定 chkboxes[i].onclick=output; } }; //--> </script> <title>sample</title> <body> <form id="SAMPLE" action="#" onclick="test(event);"> <label for="chk1"><input name="chkgroup" id="chk1" type="checkbox" value="0">Item1</label> <label for="chk2"><input name="chkgroup" id="chk2" type="checkbox" value="1">Item2</label> <label for="chk3"><input name="chkgroup" id="chk3" type="checkbox" value="2">Item3</label> </form> <p id="result">ここに表示されます。</p> </body>

  • チェックボックスの入力チェック

    JSPでJavaScript使用しています。 no.logからテキスト(1~80までの数値がランダムに書いてある)を読みこんで、その数字でチェックボックスを作り、チェックの付いている番号を違うJSPに飛ばしています。この時どこもチェックされて無ければメッセージを表示したいのですがうまくいきません。 チェックが付いているのに、チェックされていないと認識され、メッセージが表示されてしまいます。5行目のif文が問題だと思うのですが、どうすればいいのかわかりません。アドバイス下さい。宜しく御願いします。 <script language="JavaScript"> <!-- function check(){ no = document.form1.no.value; if(no == null){ alert("チェックしてください"); return false; } } //--> </script> <form name="form1" method="post" action="test2.jsp" onSubmit="return check()"> <% String str = null; int tmpn = 0; int count = 0; BufferedReader br2 = new BufferedReader(new FileReader(getServletContext().getRealPath("/WEB-INF/no.log"))); while((str = br2.readLine()) != null) { tmpn = Integer.parseInt(str); count++; if(tmpn >= 1 && tmpn <= 9){ %> <input type="checkbox" name="no" value="<%= String.valueOf(tmpn) %>">0<%= tmpn %> <% }else{ %> <input type="checkbox" name="no" value="<%= String.valueOf(tmpn) %>"><%= tmpn %> <% if(count == 10){ out.print("<br>"); count = 0; } } } %> <input type="submit" value="送信">

  • C++の無限ループを解決してください

    アルゴリズムを勉強するときに以下のソースを書きました; void weighted_quick_union_algorithm() { static const int volume = 10; enum status { terminate_, union_, find_ }; string str; status sta; vector<int> system(volume, 0); vector<int> size(volume, 1); for (int index = 0; index != volume; ++index) { system[index] = index; } do { cout<<"cin"<<endl; cin >> str; for (string::size_type index = 0; index != str.size(); ++index) str[index] = toupper(str[index]); if (str == "UNION") sta = union_; else if (str == "FIND") sta = find_; else if (str == "TERMINATE") sta = terminate_; switch (sta) { case(0): { cout << str << endl; break; } case(1): { cout << str << sta << endl; int p(0), q(0), i(0), j(0); while (cin >> p) { cin >> q; for (i = p; i != system[i]; i = system[i]); for (j = q; j != system[j]; j = system[j]); if (i == j) continue; if (size[i] < size[j]) { system[i] = j; size[j] += size[i]; } else { system[j] = i; size[i] += size[j]; } cout << p << " - " << q << endl; } cout<<"break"<<endl; break; } case(2): { cout << str << sta << endl; break; } } } while (sta); } しかし unionを入力しあと ; でwhile(cin>>p)をブレイクしたら cin break UNION1 cin break Union1 で無限ループ 結構時間かかったが間違いがわかりません ちなみに最少は while(cin>>p>>q)と書いていましたが同じ結果です。 どうかお願いします

  • お詳しい方どうぞ宜しくお願い致します。

    <!--HPB_SCRIPT_CODE_40 function _HpbShowObj(lId) { var ob;ob=new Array; var appVer=parseInt(navigator.appVersion); var isNC=false,isN6=false,isIE=false; if (document.all && appVer >= 4) isIE=true; else if (document.getElementById && appVer > 4) isN6=true; else if (document.layers && appVer >= 4) isNC=true; if (isNC) { w_str = "document." + lId;ob[lId] = eval(w_str); if (!ob[lId]) ob[lId] = _HpbFindHiddenObj(document, lId); if (ob[lId]) ob[lId].visibility = "show"; } if (isN6) { ob[lId] = document.getElementById(lId); ob[lId].style.visibility = "visible"; } if (isIE) { w_str = "document.all.item(\"" + lId + "\").style";ob[lId] = eval(w_str); ob[lId].visibility = "visible"; } } function _HpbFindHiddenObj(doc, lId) { for (var i=0; i < doc.layers.length; i++) { var w_str = "doc.layers[i].document." + lId; var obj;obj=new Array; obj[lId] = eval(w_str); if (!obj[lId]) obj[lId] = _HpbFindHiddenObj(doc.layers[i], lId); if (obj[lId]) return obj[lId]; } return null; } //--> </script> これは何をするスクリプトでしょうか? これはテンプレートに記述されていたコードで 何のために必要か知りたかったので 一旦削除してサーバにアップしてみたのですが きちんと表示されていて問題なさそうでした。 すみませんがぜひご教授下さいませ。 宜しくお願い致します。

  • javaのStringデーターの読込みについて

    javaのStringTokenizerを使用しました、ストリングデーターの読み取りに ついて質問します。 入力ファイルの200.0から800.0の7個のデーターは読取ることが出来ます。 次の行の200.0を読込みますと、『str=st.nextToken(); 』でエラーになります。 Q1)このエラーの原因について、コメント頂けますと大変助かります。 //入力ファイル 200.0 300.0 400.0 500.0 600.0 700.0 800.0 200.0 2000.0 4000.0 110 //ファイルの読取コード void fileIn_f_snd_chk_etc(){ String strX; String str; try{ File file = new File("c:\\TRSX700\\file_snd_chk_etc.txt"); if (myMsrCtlPanel.checkBeforeReadfile(file)){ BufferedReader bread = new BufferedReader(new FileReader(file)); int j=0; while((strX = bread.readLine()) != null){ //<----String[] values = str.split(" * ",0); StringTokenizer st=new StringTokenizer(strX," * "); //====================== for(int i=0; i<7; i++){ //ブランクは読み飛ばしている str=st.nextToken(); f_snd_chk[i].setText(str); //fileIn_f_snd_chk_etc() // System.out.print(f_snd_chk[i].getText()+" "); } // System.out.println(""); //ここまでは、正常読取 //====================== str=st.nextToken(); //ここでエラーになる f_imp_chk.setText(str); //fileIn_f_snd_chk_etc() // System.out.print(f_imp_chk+" "); //====================== str=st.nextToken(); f_dst_chk.setText(str); //fileIn_f_snd_chk_etc() // System.out.print(f_dst_chk+" "); //====================== str=st.nextToken(); f_fft_chk.setText(str); //fileIn_f_snd_chk_etc() // System.out.print(f_fft_chk+" "); //====================== str=st.nextToken(); key_data.setText(str); //fileIn_f_snd_chk_etc() System.out.print("f_imp_chk="+f_imp_chk.getText()+" f_dst_chk="+f_dst_chk.getText()+" f_fft_chk="+f_fft_chk.getText()+" key_data="+key_data.getText()); } //while bread.close(); } //if else{ System.out.println("ファイルが見つからないか開けません"); } } //try catch(FileNotFoundException e){ System.out.println("FileNotFoundException: "+e); } catch(IOException e){ System.out.println("IOException: "+e); } System.out.println("file_inの終了"); } //fileIn_f_snd_chk_etc() //以上