我需要为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"
}
有什么想法吗?
答案 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
As per the documentation,您需要构建自己的自定义方法。
添加自定义验证方法。它必须由一个名字组成(必须是一个 合法的javascript标识符),基于javascript的函数和 默认字符串消息。
<强>参数:强>
name; String用于标识和引用它的方法名称必须是有效的JavaScript标识符
方法; 回调实际的方法实现,如果元素有效则返回true。第一个论点:当前价值。第二 参数:验证元素。第三个参数:参数。
message(可选); 字符串,函数要为此方法显示的默认消息。可以是由...创建的函数 jQuery.validator.format(值)。未定义时,已存在 使用消息(方便本地化),否则特定于字段 必须定义消息。