• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:チェックボックスのチェック。応用編)

チェックボックスのチェック。応用編

このQ&Aのポイント
  • チェックボックスのチェック方法について質問です。チェックボックスをデータベースの内容でループ表示し、チェックされたデータをPOST送信する方法を教えてください。
  • 削除ボタンを押した際に、チェックボックスがチェックされていなければ警告画面を表示したいのですが、上手くいきません。どのように実装すれば良いでしょうか。
  • チェックボックスのチェック状態を確認する方法について教えてください。

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

  • ベストアンサー
  • trisagion
  • ベストアンサー率68% (15/22)
回答No.2

#1です。 仕様が解りましたので、あなたのサンプルをtype="button"で動くようにしてみました。(#1の回答は的がずれてました。すみません。) <SCRIPT language="javascript" type="text/javascript"> <!-- function check(){  var count = (document.form1.sagyoubii)? document.form1.sagyoubii.length: 0;  if(count == 0){   alert('項目がありません。');   return false;//この行を追加  }  var flag = 0;  for(i = 0; i < count; ++i){   if(document.form1.sagyoubii[i].checked){    flag = 1;    break;   }  }  if(flag){   return confirm('これらのデータを削除してもよろしいですか?');//OKを押されればtrue、キャンセルならfalseを返す  }else{   alert('一つもチェックされていません。');   return false;  } } //--> </SCRIPT> <FORM method ="POST" name="form1" action =""> <INPUT type="button" value="削除" onClick="if(check()){submit()}"> </FORM> <INPUT type="button">のonClickイベントでcheck()を呼び出すと大丈夫だと思います。

i-mi
質問者

お礼

なるほど、buttonでもできますね! ご親切にご回答していただきありがとうございました。

その他の回答 (1)

  • trisagion
  • ベストアンサー率68% (15/22)
回答No.1

チェックボックスは複数ある可能性があるので、 document.form1.sagyoubii[x].checked 上記のような配列としての扱いになると思います。 どのようなチェック状態ならOKなのか良く解らなかったのですが、すべての項目がチェックされているかを調べるなら以下のような感じでどうでしょう。 function check(){  var count = document.form1.sagyoubii.length;  if(count == 0){   alert('項目がありません。');  }  for(i = 0; i < count; ++i){   if(document.form1.sagyoubii[i].checked){    alert('チェックされていな項目があります。');    return false;   }  }  return true; } 一つでもチェックされてれば良いのなら以下のサンプルです。 function check(){  var count = document.form1.sagyoubii.length;  if(count == 0){   alert('項目がありません。');  }  var flag = 0;  for(i = 0; i < count; ++i){   if(document.form1.sagyoubii[i].checked){    flag = 1;    break;   }  }  if(flag){   return true;  }else{   alert('一つもチェックされていません。');   return false;  } }

i-mi
質問者

お礼

お返事ありがとうございます。 どのような状態がOKなのかを記入せず申し訳ないです。 ざっくり言うと ・チェックボックスは複数ある場合もある。 ・1つでもチェックボックスがあればOK ・削除ボタンを押すと確認画面がでる  →確認画面でOKを押した場合、1つでもチェックされていれば画面の遷移  →確認画面でOKを押した場合、1つもチェックされていなければ、警告画面がでる。 といった感じです。 ご教授いただいたサンプルで試したのですが、 チェックが無い状態で削除ボタンを押し、確認画面でOKを押すと、画面遷移を行ってしまいます。(遷移を行っても当然画面を作っていないのでエラーになります。) どうやら <INPUT TYPE="button" VALUE="削除" onclick="if(confirm('データを削除します?')) { submit(); }"> でSCRIPTのcheck()を行っていないように思われます。 ちなみにTYPEをsubmitでも試したのですが、1つもチェックが無い状態ではチェックの警告画面がでるのですが、1つ以上チェックしても警告画面が出てしまいます。

i-mi
質問者

補足

すみません。TYPEをsubmitはできました。 そして、Buttonをやめて下記のようにしたら無事にできました。 <INPUT TYPE="submit" VALUE="削除"> <SCRIPT TYPE="text/javascript"> <!-- function check(){  var count = document.form1.sagyoubii.length;  if(count == 0){   alert('項目がありません。');  }  var flag = 0;  for(i = 0; i < count; ++i){   if(document.form1.sagyoubii[i].checked){    flag = 1;    break;   }  }  if(flag){   confirm('これらのデータを削除してもよろしいですか?')   return true;  }else{   alert('一つもチェックされていません。');   return false;  } } //--> </SCRIPT> でも、 <INPUT TYPE="button" VALUE="削除" onclick="if(confirm('データを削除します?')) { submit(); }"> で同様の処理ができないのか疑問な今日この頃。

関連するQ&A

専門家に質問してみよう