如何使用javascript检查复选框数组和文本

时间:2013-11-15 12:35:44

标签: javascript jquery html

我有带有javascript的HTML页面。在这里,我有一个包含名称和复选框文本的表单。以下是HTML表单:

<form name="drugForm" action="form1.php" onsubmit="return validateForm()"     method="post">
     First name: <input type="text" name="dname">
     <pre>      
      <input type="checkbox" name="drug" value="id1">ID1        <input type="checkbox" name="drug" value="id2">ID2</br>
      <input type="checkbox" name="drug" value="id3">ID3        <input type="checkbox" name="drug" value="id4">ID4</br>
     </pre>
     <input type="submit" value="Submit">
</form>

以下是相同的javascript:

<script>
    function validateForm(){
        var x=document.forms["drugForm"]["dname"].value;
        //var y=document.drugForm.drug[0].value;
        var y = new Array();

        if (x==null || x=="")
        {
            alert("First name must be filled out");
            return false;
        }
        else if (Boolean(x))
        {
            alert("click any checkbox "+ y);
            //alert("Working with boolean " + y);
            return false;
        }
    }
</script>

在这里,我想检查是否还检查了任何复选框以及名称条目。但每当我试图在if中或在函数中的任何地方使用y(数组)进行循环时,代码就不起作用而是直接给出动作。

我的问题,具体来说,是如何检查复选框,如是否检查条件,以及如何获取这些值?

2 个答案:

答案 0 :(得分:0)

试试这个,

function validateForm(){
     var x=document.forms["drugForm"]["dname"].value;
     if (x==null || x=="")
     {
         alert("First name must be filled out");
         return false;
     }
     else if (x)
     {
         if(!$('input:checkbox:checked').length)//check length of checked checkboxes
         {
             alert("click any checkbox ");
             return false;
         }
     }
}

答案 1 :(得分:0)

以下代码验证何时至少有一个复选框:

function validateForm(){
    var x=document.forms["drugForm"]["dname"].value;
    var y=document.drugForm.drug;
    if (x==null || x=="") {
        alert("First name must be filled out");
        return false;
    } else if (Boolean(x)) {
        for (k=0;k<y.length;k++) {
            if(y[k].checked) {
            return true;
            }
        }
        alert("Check one option at least");
        return false;
    }
}

jquery中还有另一个goog选项,如另一个post所示。