1

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

这是错误图片

以下是我的代码:-

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

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

4

2 回答 2

1

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

$.validator.addMethod(
    "regex",
    function (value, element, regexp) {
        var re = new RegExp(regexp);
        return this.optional(element) || re.test(value);
    },
   "Please check your input."
);
于 2019-12-26T11:16:46.840 回答
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);

请忽略代码的缩进。

于 2018-09-10T09:50:58.387 回答