我有一个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;
}
}
}
答案 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))
。