jquery验证插件自定义规则检查单词

时间:2012-06-16 03:39:40

标签: jquery jquery-validate

我需要为Jquery Validation Plugin创建一个自定义规则来检查一个特定的单词。

在这种情况下,用户必须在输入字段中输入单词“cat”才能正确回答问题。自定义规则需要将答案定义为“cat”,我将其视为变量,然后检查它。

我失败的尝试:

jQuery.validator.addMethod("answercheck", function(value, element) { 
  var password = string('hot');
  return value(password); 
}, "Type the correct answer");

和设置:

rules: {
    input_answer{
        required: true,
        answercheck: true
    }

messages: {
    input_answer{
        required: "Answer the question",
        answercheck: "Your answer is incorrect"
    }

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

正如其他人所说,这不是一种安全的方法,因为任何人都可以看到/操纵JavaScript并轻易绕过它。

然而,简单地回答你的问题,这就是它的完成方式。 (这也是关于使用addMethod)...

的良好学习练习
jQuery.validator.addMethod('answercheck', function (value, element) { 
    return this.optional(element) || /^\bcat\b$/.test(value);
}, "Type the correct answer");

而且您也不需要为answercheck下面的消息指定消息,因为它已在method本身内部定义。 (您还在此代码中遗漏了一些大括号{,冒号:和逗号,。)

rules: {
    input_answer: { // <- missing colon after input_answer
        required: true,
        answercheck: true
     }
}, // <- missing brace & comma
messages: {
    input_answer: { // <- missing colon after input_answer
        required: "Answer the question"
        //, answercheck: "Your answer is incorrect"  // not needed, specified in method
    } 
} // <- missing brace and maybe a comma depending on what follows

Working jsFiddle DEMO

http://jsfiddle.net/ht8Lu/


As per the documentation,您需要构建自己的自定义方法。

  

添加自定义验证方法。它必须由一个名字组成(必须是一个   合法的javascript标识符),基于javascript的函数和   默认字符串消息。

     

<强>参数:

     

name; String用于标识和引用它的方法名称必须是有效的JavaScript标识符

     

方法; 回调实际的方法实现,如果元素有效则返回true。第一个论点:当前价值。第二   参数:验证元素。第三个参数:参数。

     

message(可选); 字符串,函数要为此方法显示的默认消息。可以是由...创建的函数   jQuery.validator.format(值)。未定义时,已存在   使用消息(方便本地化),否则特定于字段   必须定义消息。