0

我创建了一个自定义 jquery 验证,但我的验证总是失败(总是返回 true),我花了几个小时但无法弄清楚我的代码出了什么问题:

var isvalid = [];
var counterrors = isvalid.length;
function salutationvalidation(){

    var salutation = $("#salutation option").attr("selected");
    var salutation_error = $("#salutation").parent(".form-input").siblings(".form-info").children(".1stperror");

    if(salutation!=undefined){
        $(salutation_error).css("display","table-cell");
        isvalid.push(salutation_error);
    }else{
        $(salutation_error).css("display","none");
        isvalid.pop(salutation_error);
    }

}

function namevalidation(){
    var checkname = $("#first-name").val();
    var namevalid = new RegExp("(^[a-zA-Z'-]+$)");
    var name_error = $("#first-name").parent(".form-input").siblings(".form-info").children(".1stperror");

    if(checkname.match(namevalid)){
        $(name_error).css("display","table-cell");
        isvalid.push(name_error);
    }else{
        $(name_error).css("display","none");
        isvalid.pop(name_error);
    }

}

$("#form-v2").submit(function(){
    salutationvalidation();
    namevalidation();
    if(counterrors == 0){
        return true;
    }else{
        return false;
    }
});

解决上述代码的任何帮助将不胜感激,因为我还必须满足其他 4 个输入字段。当我提醒计数错误时,我得到 4,有时是 5,6。似乎值没有清除

4

1 回答 1

0

尝试这个.....

$("#form-v2").submit(function(){
    salutationvalidation();
    namevalidation();
    counterrors = isvalid.length;
    if(counterrors == 0){
        return true;
    }else{
        return false;
    }
});
于 2013-11-08T12:31:58.557 回答