jquery.validate中的addmethod

时间:2010-12-13 05:46:50

标签: jquery jquery-validate

如何在jquery.validate中使用addmethod。 实施例

$("#formname").validate({
    rules: {
        textbox: {
            required: true,
            regexp: /['"]/
        },
        methods: {
            required: "Should not be blank",
            regexp: "Single quotes and double quotes not allowed"
        }
    }
});

我需要使用addmethod检查文本框中的这个引号。我怎样才能做到这一点。通过我的示例代码实现您的答案来解释我。

2 个答案:

答案 0 :(得分:2)

首先我们需要一些修复,messages的布局是这样的(你不能用原始选项做这个...插件只是不寻找那个结构):

$("#formname").validate({
    rules: {
        textbox: {
            required: true,
            regexp: /['"]/
        }
    },
    messages: {
        textbox: {
            required: "Should not be blank",
            regexp: "Single quotes and double quotes not allowed"
        }
    }
});

然后你的方法看起来像这样:

$.validator.addMethod("regexp", function(value, element, param) { 
  return this.optional(element) || !param.test(value); 
});

You can test it out here ....但是你注意到你的正则表达式是倒退的,所以命名不太正确......我会将regexp重命名为nomatch ...或更多内容表明你正在寻找的行为。

答案 1 :(得分:0)

$("#formname").validate({
  rules: {
    textbox: {
        required: true,
        regexp: true
    }
  },
  messages: {
     textbox: {
         required: "Should not be blank",
         regexp: "Single quotes and double quotes not allowed"
     }
  }
});



// Regexp validation
$.validator.addMethod("regexp", function(value, element, arg){
var reg_val=$('#textbox').val();
var regExp=/^['"]+$/;

if($('#textbox').val().match(reg_val)){
  return true;
}else{
   return false;
}
}, "");