Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery验证插件v1.13.1-pre-如何在电子邮件地址输入后启用空格_Javascript_Jquery_Validation - Fatal编程技术网

Javascript 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) || /^(([^<>()[

我在我的应用程序中使用jQuery验证插件v1.13.1-pre来验证电子邮件

$("#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());