使用 jquery 表单验证插件时无法读取未定义的 属性 'call'

Cannot read property 'call' of undefined while using jquery form validation plugin

我正在使用 jquery 表单验证插件来验证我的表单,在所有验证都成功之后,我会调用提交功能。但是在将正则表达式应用于字段时发生错误 "Cannot read property 'call' of undefined" 使用 jquery 表单验证插件,上面的字段是 prefilled 所以我认为这是因为那个。下面是错误的图像。

下面是我的代码:-

<form id="email-form">
   <input type="text" class="text-field-3 w-input" maxlength="256" autofocus="true" name="first-name" data-name="first-name"
     placeholder="First Name" id="first-name-2">
</form>

<script>
$(document).ready(function () {
  $('#email-form').submit(function (e) {
    e.preventDefault();
  }).validate({ // initialize the plugin
     rules: {
       "first-name": {
         required: true,
         regex: /^[a-zA-Z]+$/i
       }
     }
   })
</script>

请帮我解决这个问题。谢谢!

您没有包含正则表达式函数,只需按以下操作即可:

<script>
$(document).ready(function () {
  (function($,W,D){
    var JQUERY4U = {};
    JQUERY4U.UTIL = {
     setupFormValidation: function(){
        $.validator.addMethod("regex", function(value, element, regexpr) {          
        return regexpr.test(value);
     }); 

 $('#email-form').submit(function (e) {
  e.preventDefault();
 }).validate({ // initialize the plugin
   rules: {
   "first-name": {
      required: true,
      regex: /^[a-zA-Z]+$/i
    }
  }
 })
}
}
$(D).ready(function($) {
    JQUERY4U.UTIL.setupFormValidation();
});
})(jQuery, window, document);

请忽略代码缩进。

添加如下函数支持正则表达式:'expression':

$.validator.addMethod(
    "regex",
    function (value, element, regexp) {
        var re = new RegExp(regexp);
        return this.optional(element) || re.test(value);
    },
   "Please check your input."
);