我有js函数onsubmit forms
var bCancel = false;
var errors = new Array();
function validateNewsForm(form) {
if (bCancel) {
return true;
} else {
errors = [];
var statusArray = new Array();
statusArray.push(validateRequired(form));
statusArray.push(validateMaxLength(form));
statusArray.push(validateDate(form));
for (status in statusArray) {
if (!status) {
alert(errors.join('\n'));
return false;
}
}
return true;
}
}
validateSmth()函数运行正常。但是当我输入正确的数据时,我无法保存,因为得到空的警报。我只有一条警告消息,现在所有验证函数都给出了真实(如果数据正确)
为什么我会得到空警报?
答案 0 :(得分:3)
for (status in statusArray) {
if (!status) {
for in
循环为您提供密钥。对于数组,这些是索引。因此,您有效地执行了!0
,!1
等,!0
评估为true
。
您想要一个正常的for
循环:
for(var i = 0; i < statusArray.length; i++) {
if (!statusArray[i]) {
此外,您还在一起使用[]
和new Array()
。最好在任何地方使用[]
。
答案 1 :(得分:1)
因为status = 0
!状态为true
。
修改后的代码:
for (var status = 0; status < statusArray.length; status ++) {
if (!statusArray[status] ) {
alert(errors.join('\n'));
return false;
}
}