繁体   English   中英

使用倍数addMethod jQuery

[英]using multiples addMethod jquery

我想使用带有jQuery验证程序的addMethod函数自定义表单的验证,但是当我尝试添加多个方法时,验证程序似乎只看第一个方法。

这是代码:

  jQuery.validator.addMethod("name", function(value, element) {
    return this.optional(element) || /^[A-Za-zÀ-ÖØ-öø-ÿ]{2,30}$/.test(value);
  }, "please enter a valid name");

  jQuery.validator.addMethod("surname", function(value, element) {
    return this.optional(element) || /^[A-Za-zÀ-ÖØ-öø-ÿ]{1,30}\-?[A-Za-zÀ-ÖØ-öø-ÿ]{1,30}$/.test(value);
  }, "please enter a valid surname");

  $("#contactform").validate({
    rules: {
      firstname:{
        required: true,
        name: true,
        minlength: 2,
        maxlength: 30
      },
      lastname:{
        required: true,
        surname: true,
        minlength: 2,
        maxlength: 30        
      }
    }
  });

问题是,在姓氏中,如果要合并姓氏,我希望能够添加一个“-”,我尝试了regEx,它的工作方式与我想要的完全一样,但是即使我在其中调用方法“ surname”领域的规则,似乎反正阐述了方法“名称”!

在此先感谢您的帮助,我真的不明白我在这里缺少什么。

https://jsfiddle.net/2zumkcyg/11/

问题出在您的方法名称上。 规则中的prop name已经是$.validator的预定义规则,如minLength 如果您将name更改为其他name ,那将起作用。

JS

$(document).ready(function(){
  $.validator.addMethod("named", function(value, element){
    return this.optional(element) || /^[A-Za-zÀ-ÖØ-öø-ÿ]{2,30}$/.test(value);
  }, "Please enter a valid name.");

  $.validator.addMethod("surname", function(value, element){
    return this.optional(element) || /^[A-Za-zÀ-ÖØ-öø-ÿ]{1,30}\-?[A-Za-zÀ-ÖØ-öø-ÿ]{1,30}$/.test(value);
  }, "Please enter a valid surname.");

  $("#contactform").validate({
    rules: {
      firstname: {
        required: true,
        named: true,
        minlength: 2,
        maxlength: 30
      },
      lastname:{
        required: true,
        surname: true,
        minlength: 2,
        maxlength: 30        
      }
    }
  });
});

DEMO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM