【发布时间】:2019-01-21 21:22:13
【问题描述】:
我目前正在使用 jQuery Validate 来验证我的表单数据,并且我正在对多个字段使用正则表达式来使用模式检查有效性。但是,即使在通过 addMethod 应用我的新验证方法后,表单仍然允许人们在全名字段中仅使用名字来提交表单。
对于我的全名字段,我已经通过在字段上测试它来验证我的正则表达式是否有效,而无需在我的表单上使用 novalidate。
正则表达式:^([a-zA-Z]{2,}\s[a-zA-z]{1,}'?-?[a-zA-Z]{2,}\s?([a-zA-Z]{1,})?)
添加方法尝试
jQuery.validator.addMethod("fullname", function(value, element) {
return this.optional(element) || /^([a-zA-Z]{2,}\s[a-zA-z]{1,}'?-?[a-zA-Z]{2,}\s?([a-zA-Z]{1,})?)/.test(value);
}, 'Please enter your full name.');
<input id="full-name" name="Full_Name" type="text" class="form-control" placeholder="John Doe" required>
如果输入的是单个姓名(例如 John)而不是全名,我的正则表达式应将其标记为无效并请求此人的全名。
【问题讨论】:
-
您的
.validate()方法在哪里?你的form在哪里?如果不显示这一点,没有人知道您是否正确调用了新规则。 -
我实际上并不知道
.validate()方法,因此是我的问题。现在都修好了。谢谢大家!
标签: javascript jquery regex jquery-validate