2016-10-22 66 views
0
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.when我提交表单,如果所有领域的空白按钮填写所有字段按钮启用后保持禁用工作,但这不工作的CVV领域如果所有字段空白,我填写CSV字段表单提交和禁用属性删除。jQuery验证工作的所有领域除外CVV场

回答

0

的问题是在这里:

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

这里,同时检查所有元素,cvv是最后一个元素,并按照该条件的值validtrue。并因为它,你的按钮被启用。

你可以做这样的事情:

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

提高代码按照您的要求。

+0

非常感谢 – varsha