除了cvv字段之外,Jquery验证适用于所有字段

时间:2016-10-22 04:34:54

标签: javascript jquery

var toValidate = jQuery("#fullname, #address, #city, #state,#zip,#phone,#country,#expireMM,#expireYY,#card_number,#cvv_number"),
                valid = false;
            toValidate.keyup(function () {
                if (jQuery(this).val().length > 0) {
                    jQuery(this).data('valid', true);
                } else {
                    jQuery(this).data('valid', false);
                }
                toValidate.each(function () {
                    if (jQuery(this).data('valid') == true) {
                        valid = true;
                    } else {
                        valid = false;
                    }
                });
                if (valid === true) {
                    jQuery("#signInSubmit").prop('disabled', false);
                } else {
                    jQuery("#signInSubmit").prop('disabled', true);
                }
            });

以上jquery验证工作除了cvv之外的所有字段当我提交表单如果所有字段空白按钮在填写所有字段按钮启用后仍保持禁用但这不适用于cvv字段如果所有字段为空并且我填写cvv字段表单提交和禁用属性删除。

1 个答案:

答案 0 :(得分:0)

问题在于:

toValidate.each(function () {
    if (jQuery(this).data('valid') == true) {
        valid = true;
    } else {
        valid = false;
    }
});

在检查所有元素时,cvv是最后一个元素,根据条件,值valid将为true。因此,您的按钮已启用。

您可以这样做:

var valid = true;
toValidate.each(function () {
    if (jQuery(this).data('valid') == true && valid !== false) {
        valid = true;
    } else {
        valid = false;
    }
});

根据您的要求改进代码。