我有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()。最好在任何地方都使用[]

09-11 20:41