3

このリンクをリソースとして使用しようとしています: http://www.w3schools.com/js/js_form_validation.asp

テキストボックスの仕組みは理解していますが、チェックボックスのフォーム検証を検出するにはどうすればよいですか? たとえば、チェックボックス (すべて同じ「名前」の値) が並んだページがある場合、少なくとも 1 つのボックスがチェックされていることを確認したいのですが... どうすればよいですか? チェックボックスがチェックされていない場合に送信される投稿リクエストと、JavaScript がそれをキャッチする方法について少し混乱しています。ありがとうございました。

編集 - -

動作するようになりました。将来の人々のためのコードを次に示します。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function Validate(){
   if(!validateForm()){
       alert("Something happened");
       return false;
   }
return true
}
function validateForm()
{
    var c=document.getElementsByTagName('input');
    for (var i = 0; i<c.length; i++){
        if (c[i].type=='checkbox')
        {
            if (c[i].checked){return true}
        }
    }
    return false;
}
</script>
</head>
<body>
<form name="myForm" action="demo_form.asp" onsubmit="return Validate()" method="post">
Value: <input type="checkbox" name="fname" value="value">
Value2: <input type="checkbox" name="fname" value="value2">
...<more boxes here>
<input type="submit" value="Submit">
</form>
</body>
</html>
4

2 に答える 2

1

これは、あなたが求めていることを実行し、このページ内でテストできる例です:

function Validate(){
   if(!validateForm()){
       alert("You must check atleast one of the checkboxes");
       return false;
   }
return true
}
function validateForm()
{
    var c=document.getElementsByTagName('input');
    for (var i = 0; i<c.length; i++){
        if (c[i].type=='checkbox')
        {
            if (c[i].checked){return true}
        }
    }
    return false;
}
<form name="myForm" action="demo_form.asp" onsubmit="return Validate()" method="post">
Option 1: <input type="checkbox" name="option1" value="1"><br />
Option 2: <input type="checkbox" name="option2" value="2"><br />
<input type="submit" value="Submit Form">
</form>

于 2016-03-23T19:56:46.827 に答える
0

function ValidateForm(form){
ErrorText= "";
if ( ( form.gender[0].checked == false ) && ( form.gender[1].checked == false ) )
{
alert ( "Please choose your Gender: Male or Female" );
return false;
}
if (ErrorText= "") { form.submit() }
}
<form name="feedback" action="#" method=post>
Your Gender: <input type="checkbox" name="gender" value="Male"> Male
<input type="checkbox" name="gender" value="Female"> Female

<input type="reset" value="Reset">
  <input type="button" name="SubmitButton" value="Submit" onClick="ValidateForm(this.form)">
</form>

于 2016-09-22T04:55:19.583 に答える