使用jQuery表单验证插件时无法读取未定义的属性“调用”

时间:2018-09-10 05:36:37

标签: javascript jquery jquery-form-validator

我正在使用jquery表单验证插件来验证我的表单,在所有验证成功之后,然后调用Submit函数。但是在将正则表达式应用于字段时,使用jquery表单验证插件发生了错误“无法读取未定义的属性'调用'” ,上面的字段为prefilled,所以我认为正因为如此。以下是错误图片。

Here is error Image

下面是我的代码:-

<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>

请帮助我解决此问题。谢谢!

2 个答案:

答案 0 :(得分:0)

您没有包含正则表达式功能,只需执行以下操作即可:

<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);

请忽略代码的缩进。

答案 1 :(得分:0)

添加如下功能以支持正则表达式:'expression':

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