我有js函数onsubmit表单
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()函数可以正常工作。但是,当我输入正确的数据时,由于收到空警报,因此无法保存。我只有一条警报消息,现在所有验证功能都为true(以防万一数据正确)
为什么我会收到空警报?
最佳答案
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()
。最好在任何地方都使用[]
。