我的表单中有以下输入:
<input class="input-group-field" id="email" name="email" type="email" size="1" required="">
Run Code Online (Sandbox Code Playgroud)
我正在使用 jQuery 验证插件在 ajax 请求之前验证表单。它工作正常,但是为什么这个电子邮件输入有效:
abc@esd
因此,如果我不添加顶级域名,它似乎是有效的电子邮件?
而 abc@esd. 是无效的
任何想法出了什么问题或者我可以采取什么措施来防止这种情况?
代码:
if ($("#valForm").valid()) {
// Do Stuff
}
Run Code Online (Sandbox Code Playgroud)
我没有制定任何规则
谢谢
创建自定义方法:
$.validator.addMethod('emailtld', function(val, elem){
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if(!filter.test(val)) {
return false;
} else {
return true;
}
}, '*');
Run Code Online (Sandbox Code Playgroud)
然后您可以将数据属性“data-rule-emailtld”添加到您的输入字段:
<input class="input-group-field" id="email" name="email" type="email" size="1" required="" data-rule-emailtld="true">
Run Code Online (Sandbox Code Playgroud)
注意: “Sharukh k shaji”的答案使用正确的正则表达式,但没有使用 jQuery 验证插件。