Jquery 为什么不验证呢?
我正在验证我的表格, 但由于某些原因,SSN字段无法工作:( 我有:Jquery 为什么不验证呢?,jquery,forms,validation,Jquery,Forms,Validation,我正在验证我的表格, 但由于某些原因,SSN字段无法工作:( 我有: validate: function () { contact.message = ''; if (!$('#contact-container #contact-name').val()) { contact.message += 'Name is required. '; } var ssn = $('#contact-con
validate: function () {
contact.message = '';
if (!$('#contact-container #contact-name').val()) {
contact.message += 'Name is required. ';
}
var ssn = $('#contact-container #contact-ssn').val();
if (!ssn) {
contact.message += 'SSN is required. ';
}
else {
if (!contact.validateSSN(ssn)) {
contact.message += 'SSN is invalid. ';
}
}
var email = $('#contact-container #contact-email').val();
if (!email) {
contact.message += 'Email is required. ';
}
else {
if (!contact.validateEmail(email)) {
contact.message += 'Email is invalid. ';
}
}
if (!$('#contact-container #contact-message').val()) {
contact.message += 'Message is required.';
}
if (contact.message.length > 0) {
return false;
}
else {
return true;
}
},
及
我的电子邮件部分工作正常,但SSN部分只接受任何内容,因为它不是空的。我缺少什么?
谢谢我想你需要-
if (!/^[0-9]{9}$/.test(ssn))
而不是-
if (!/^[0-9]{9}$/)
这将告诉您
ssn
值是否与您的正则表达式匹配。我认为!/^[0-9]{9}$/
将始终返回false。!/^[0-9]{9}$/将始终返回false,因为/../part计算结果为正则表达式对象,而对象的计算结果始终为true
您可能希望if(!/^[0-9]{9}$/.test(ssn))
编辑:更简单:
validateSSN: function (ssn) {
return /^[0-9]{9}$/.test(ssn);
}
你能用失败的代码和测试用例创建一个JSFIDLE.net吗?ty you:)但是在更改代码后它仍然不能工作,我修复了它。。。。我必须删除
否则{return true;}
这很危险,因为这样它将返回未定义的
。请参阅我的最新答案。test
方法将始终返回布尔值。
validateSSN: function (ssn) {
return /^[0-9]{9}$/.test(ssn);
}