我有一个特定的问题。我正在使用jQuery Validate,并想在一个字段上设置一个多个自定义规则,代码看起来像
var validate = {
opt: {
onkeyup: function(element, event) {
if (event.which === 9 && this.elementValue(element) === "") {
return;
} else {
validator.element(element);
}
},
rules: {
'user[password]': {
method1: {},
method2: {},
required: true,
},
},
},
messages: {}
};
jQuery.validator.addMethod('method1', function(a, b, c) {
return false;
});
jQuery.validator.addMethod('method2', function(a, b, c) {
console.log('test');
return true;
});
问题2仅当方法1返回true时才会触发。代码是一个示例。是否有任何选择这样的设置行为。我想念什么吗?我在其他页面上有类似的代码,并且可以正常工作。
问题2仅当方法1返回true时才会触发。代码是一个示例。
每个字段评估规则,一次(以声明的顺序,除了required
以外,(。
如果字段为required
,则required
消息将显示直到输入到字段中为止。一旦字段开始填写,剩余的方法将按顺序发射... method1
消息将显示为直到满足该规则(返回true
(。因此,method2
仅在满足required
和method1
后才发射(true
(。
由于您的method1
始终是false
,因此永远不会满足,并且method2
永远不会评估。
是否有这样的选项设置行为。
不,它是这样设计的,也没有选择将其关闭。否则,您将在一个字段上显示几个同时显示的消息。
我错过了什么吗?
如果您需要两种自定义方法同时启动,则应将这两个规则合并为一种方法。
i
got在其他页面上具有类似的代码,并且可以正常工作。
取决于您对"类似"one_answers"正确"的定义。如果您认为同时评估两个规则,那是不可能的。上面的OP中的代码正在按预期工作和设计。