形式验证

时间:2016-08-14 19:58:48

标签: javascript html forms validation

我有一个html表单,其中有6个输入框,应该加起来为100.如果他们没有将put添加到100或者输入为空,则在单击按钮时会出现警报。到目前为止,如果总数不对,我可以得到警报,但不是空场。

HTML

        <fieldset>

             <input  type="text" name="qty" oninput="findTotal()" id="qty1" class="hvr-pop" required/>   

             <input  type="text" name="qty" oninput="findTotal()" id="qty2" class="hvr-pop" required/>    

             <input  type="text" name="qty" oninput="findTotal()" id="qty3" class="hvr-pop" required/>    

             <input  type="text" name="qty" oninput="findTotal()" id="qty4" class="hvr-pop" required/>    

             <input  type="text" name="qty" oninput="findTotal()" id="qty5" class="hvr-pop" required/>    

             <input  type="text" name="qty" oninput="findTotal()" id="qty6" class="hvr-pop" required/>    

       </fieldset>    

       <button type="button" class="weightageButton" onclick="validateTotal()">TOTAL WEIGHTAGE</button>
       <output type="text" name="total" id="total" class="hvr-pop" readonly value="Must total 100"></output>

的Javascript

    for(var i=0; i<arr.length;i++){
        if(parseInt(arr[i].value) === null || score > 100 || score < 100) {

            alert("Please make sure each weightage is filled in and the total adds up to 100.");
            $('#form1').find('input').val('');
            $('#form1').find('#total').val('');
            return false;
        }



    }
}

2 个答案:

答案 0 :(得分:0)

问题是parseInt()空字符串返回NaN,而不是NULL。您应该将当前检查替换为:

    if (isNaN(parseInt(arr[i].value)) || ... ) { ... }

答案 1 :(得分:0)

如果文本字段具有任何字符值,则parseInt(arr[i].value) === null将无效,正如您所期望的那样 isNaN()函数确定值是否为非法数字。 Number.isNan()不会将值转换为Number,并且对于任何不是Number类型的值都不会返回true。 您应该使用parseInt(arr[i].value) === null而不是isNaN(parseInt(arr[i].value))