1

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

在这种情况下,用户必须通过在输入字段中输入单词“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"
    }

有任何想法吗?

4

1 回答 1

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

工作 jsFiddle 演示

http://jsfiddle.net/ht8Lu/


根据文档,您需要构建自己的自定义方法。

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

论据:

姓名; String 方法的名称,用于识别和引用它,必须是有效的 javascript 标识符

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

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

于 2012-12-19T21:46:09.583 回答