• ベストアンサー

チェックボックスかテキストボックスか調べる方法

document.myForm.elements[buf].checked; ・・・ でチェックする対象が、テキストボックスなのか、 チェックボックスなのか調べたいのです。 あらかじめわかっていれば checked なり、value を追記すればおもうのですが、cgi などで吐き出した html でチェックするフォームが毎回変わる場合、 チェックボックスがいくつあるのか、テキストボックス がいくつあるのかわからない場合があります。 何か良い方法がないでしょうか。

  • naru
  • お礼率76% (155/202)

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

  • ベストアンサー
  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.1

document.form.element.typeで"text"、"button"t等のフォーム部品のタイプを取得することができます。 document.myForm.elements[buf].typeでタイプを判別して、処理を分けてはどうでしょう?

naru
質問者

お礼

ありがとうございました。 無事タイプを判別することができました。 感謝です!!!

関連するQ&A

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

    チェックボックスが2つあります。 一つが選択されたらテキストボックスが入力可能にしてあります。 Aを選択すると、Bのチェックが外れる、反対の場合も同じようにしたいのですが、下記のように書きましたがうまくいきません。 解決方法が分かられる方、教えて下さい。 *********************************************** function Change(){ if(document.myForm.chkB.checked ==true{ document.myForm.TxtA.disabled = true; document.myForm.chkA.checked = false; } else { document.myForm.TxtA.disabled = false; document.myForm.chkA.checked = true; } } ***********************************************

  • 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にて、2つのチェックボックスのチェックができません

    お世話になっております。 お分かりになる方いらっしゃいましたら、ご教授願えますでしょうか? 現在採用に関する応募フォームを作成しています。 JavaScriptにてフォーム内のチェックボックスに チェックが入っているか、必須チェックをさせたいと思っています。 テキストボックスやコンボボックスなど、いくつか必須チェックがある中で、 チェックボックスの項目についての必須チェックがうまくいきません。 チェック完了後、cgiにてメールを送信するようにしているのですが、 チェックがされず、メールを送信してしまいます。 ローカルで行ってみたのですが、チェックをスルーして、 cgiに遷移してしまいます。 フォームイメージは以下の感じです。 <応募フォーム> --------------------------- 希望勤務地:□本社 □大阪 --------------------------- 2つのチェックボックスどちらにもチェックが入っていない場合は、 エラーメッセージを出し、処理を中止します。 どちらのチェックボックスにもチェックが入っていても、 エラーは出さずにcgiへ遷移します。 以下は現在のコードの内容です。 <HTMLコード> <form method="POST" action="send.cgi" name="応募フォーム" onSubmit="return check()"> <input type="checkbox" name="希望勤務地" value="本社" checked>本社 <input type="checkbox" name="希望勤務地" value="大阪">大阪 <input type="submit" value=" 送信 "> <input type="reset" value=" 取消 "> <Scriptコード> function check(){ if(!document.応募フォーム.希望勤務地.value.checked){ flag = 1; window.alert('必須項目[希望勤務地]にチェックがされていません'); } } 色々試してみたのですが、うまくいきませんでした。 チェックボックスのnameを同じ名前にしているのが原因でしょうか? お手数ですが、宜しくお願いいたします。

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

    ざっとですけれども <form action="**" name="myform" onsubmit="return Check()" method=post> <input type="checkbox" name="Erasedata" id="Erasedata" value="1" > <input type="checkbox" name="Erasedata" id="Erasedata" value="2" > ・・・ <input type="checkbox" name="Erasedata" id="Erasedata" value="5" > <input type="submit" value="選択されたものを削除する"> このようなチェックボックスがあったとして function Check() { for (i=0;i<document.myform.length;i++)  {   if(document.myform.Erasedata[i].checked==true) {return true;}  } alert("どこかにチェックを入れて下さい "); return false; } といった感じで未入力チェックをしています。 チェックボックスが複数の場合はうまく動くのですが、チェックボックスがひとつだとうまくいきません。スクリプトで何か問題があるようでしたらご指摘お願いできませんでしょうか。よろしくお願いいたします。

  • テキストボックスに入力されたらラジオボタンにチェック

    いつもお世話になっております。 タイトル通りなのですが テキストボックスに入力された時に、チェックボックスや ラジオボタンににチェックが付くようなJavaScriptを思考しています。 test.php ---------------------------------------- <form name="form1" method="post" action="test.php"> <input type="checkbox" name="235[]" value="1"> <input name="394" type="text" style="ime-mode: active" onchange="text_check('235')" value="" /> </form> script.js ---------------------------------------- function text_check(nm) {  obj = document.form1;  alert(obj.elements[nm + '[]'].length); // アラートで「undefined」と出てしまう。  for( i=0; i<obj.elements[nm + '[]'].length; i++){   obj.nm[i].checked = true;  } } フォームのラジオボタン、テキストボックスのname属性は 数字じゃない場合は、問題なさそうなのですが 数字の場合だとうまく動作してくれません。 name属性を変更することは考えていません。 ご教示よろしくお願いいたします。

  • チェックボックスとテキストフォームが両方空の場合はPOSTを不許可にしたい

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=1810910 でご教示いただいたスクリプトに若干の機能追加です。 (1) テキストフォームに 値がある場合はチェックOFF 値がない場合はチェックON (2) テキストフォームに何か値があるのにチェックされた 場合は、テキストフォームの値はクリア、 以上までは、これまで当掲示板で教わったいろいろな サンプルで何とか実現できたのですが、 チェック=OFF、テキストフォーム=空 という状態が作れてしまうため この状態にsubmitボタンを押下した際は、 alert("チェックとテキストの両方が指定されていません"); のように、POSTを許可しないようにしたいです。 よろしくお願い致します。 <html> <head> <script language="JavaScript" type="text/JavaScript"> <!-- function checktext() { if(document.n0.n2.value.length){document.n0.n1.checked=false;} else{document.n0.n1.checked=true;} } function autoClear(f,cn,fl){ for (var i=0;i<f.elements.length;i++) { if (f.elements[i].className == cn) { f.elements[i].value = ""; } } } //--> </script> </head> <body> <form name="n0" id="0" action="" method="post"> <input type="checkbox" name="n1" id="1" onClick="autoClear(this.form,'n2',this.checked);" checked> <input type="text" name="n2" id="2" class="n2" onChange="checktext()"> <input type="submit"> </form> </body> </html>

  • チェックボックスのチェックした項目の名前を取得したいです。

    チェックボックスのチェックした項目の名前を取得したいです。 HTML+Javascript+CGIでアンケートフォームを作っています。 送信ボタンを押したときに確認画面を表示させたいのですが、チェックボックスの項目をどう扱って良いのかわかりません。 性別を選択するラジオボタンの値の取得(男をチェックしたか、女をチェックしたか)は sex = document.mailform.sex[0].checked ? document.mailform.sex[0].value : document.mailform.sex[1].value このように出来るとのことですが、チェックボックスはどうしたら良いのでしょうか? 好きな食べ物を聞くチェックボックスで、選択項目に ・リンゴ・バナナ・ミカン・イチゴ を用意し、チェックされた項目を 好きな食べ物:リンゴ イチゴ の用に出力したいと思っています。 よろしくお願いします。

  • ページ内の全チェックボックスのチェック

    ページ内の全チェックボックスのチェックするブックマックレットを作成したいのですが、うまく動作しません。どのようにすればよいのでしょうか? よろしくお願いします。 javascript:void(for(i=0; i<document.form[0].elements[0].checkboxs.length; i++){document.form[0].elements[0].checkboxs[i].checked=true;})

  • 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> よろしくお願いいたします。

  • 一つのチェックボックスでテキストフィールドとプルダウンリストを制御

    現在以下のようなテキストフィールドとプルダウンがあります。 <form name="register" action="register_kakunin.php" method="post"> <input type="checkbox" name="name_check" onclick="fchk(this,1);" /> <input name="revenue" onChange="keisan()" type="text" id="revenue" size="6" readOnly="true"/> <input type="checkbox" name="chk" onclick="fchk2(this)" /> <select name="paymethod" disabled="disabled"> <option value="">Pay Method</option> <option value="cash">cash</option> <option value="card">card</option> <option value="point">point</option> <option value="coupon">coupon</option> </select> </form> これを function fchk(obj, name_check){ var frm=document.register; if(!obj.checked){ /* チェックされたら、テキストボックスを有効化 */ frm.revenue.readOnly=true; }else{ /* チェックが外されたら、テキストボックスを無効化 */ frm.revenue.readOnly=false; } } function fchk2(obj) { var frm=obj.form; var len=frm.elements.length; /* フォームの要素数 */ if(obj.checked==true){ /* チェックボックスが選択されている場合、   プルダウンを有効化(disabled=false) */ frm.elements["paymethod"].disabled=false; }else{ /* チェックボックスが選択されていない場合、   プルダウンを無効化(disabled=true) */ frm.elements["paymethod"].disabled=true; } } という2つのスクリプトで制御しているのですが、前者を操作するときには必ず後者も操作することになるため、一つのチェックボックスで2つとも制御できるようにしたいのですが、どうしたらいいのでしょうか? 上記のjavascriptはネットから拾ってきたもので、自作ではありません。 宜しくお願いします。

専門家に質問してみよう