Javascript jQuery验证插件v1.13.1-pre-如何在电子邮件地址输入后启用空格
我在我的应用程序中使用jQuery验证插件v1.13.1-pre来验证电子邮件Javascript jQuery验证插件v1.13.1-pre-如何在电子邮件地址输入后启用空格,javascript,jquery,validation,Javascript,Jquery,Validation,我在我的应用程序中使用jQuery验证插件v1.13.1-pre来验证电子邮件 $("#loginForm").validate({ rules: { username: { emailVal: true } } )} emailVal:function(value, element) { return this.optional(element) || /^(([^<>()[
$("#loginForm").validate({
rules: {
username: {
emailVal: true
}
}
)}
emailVal:function(value, element) {
return this.optional(element) || /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(value);
}
如果用户在输入有效地址后单击空格键,则会出现错误。
如何在电子邮件地址输入后启用空格?您需要的是在使用修剪功能验证字段之前对其进行修改 看起来submitHandler应该在应用验证规则之前运行 此处的文档:
根据Seth的建议,您可以修改正则表达式以允许在末尾使用空格,然后在提交处理程序中删除它们:
//Notice that I added \s* at the end of the RE
jQuery.validator.addMethod("emailVal", function (value, element) {
return this.optional(element) || /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))\s*$/.test(value);
});
您的代码将以如下方式结束:在执行验证调用之前尝试运行submitHandler的内容,但submitHandler必须位于$selector.validate{}中,这就是为什么我说在执行验证调用之前先放置submitHandler的内容,不是实际的submitHandler函数submitHandler不是正确的选项,因为它发生在验证之后。规则类型emailVal是什么?jQuery Validate不支持这一点,所以它必须是您的自定义规则?你想用电子邮件吗?emailVal确实受支持吗?当我尝试运行它时,会抛出一个错误,说明检查元素时发生异常,请检查“emailVal”方法。请看这里:对不起。。。你说得对。我添加了另一个验证。我将编辑问题并显示它。@Ryley-由于某种原因,当我在代码中更改它时,提交无法执行
//Notice that I added \s* at the end of the RE
jQuery.validator.addMethod("emailVal", function (value, element) {
return this.optional(element) || /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))\s*$/.test(value);
});
$('#username').val($('#username').val().trim());