我使用jQuery验证,我想禁用某个元素的keyup验证,所以我使用下面的代码: -
$("form").validate({
onkeyup: function (element) {
if (element.id == 'tx_username') {
return false;
}
}
这只会禁用所有内容,而不仅仅是所需的元素。有谁知道如何禁用指定元素的keyup验证。 ' tx_username'在这种情况下
答案 0 :(得分:1)
这只会禁用所有内容,而不仅仅是所需的元素。
当您使用onkeyup
选项时,您的自定义功能将完全覆盖插件的默认功能。由于您没有else
语句,因此如果该字段与tx_username
不匹配,则不会发生任何其他情况...完全有效禁用onkeyup
验证。
onkeyup: function (element) {
if (element.id == 'tx_username') {
return false;
}
}
解决方案是将the default onkeyup
code合并到你的......
onkeyup: function (element, event) {
var excludedKeys = [
16, 17, 18, 20, 35, 36, 37,
38, 39, 40, 45, 144, 225
];
if (element.id == 'tx_username') { // disable 'onkeyup' for this field
return false;
} else { // otherwise, use the default code
if (event.which === 9 && this.elementValue(element) === "" || $.inArray(event.keyCode, excludedKeys) !== -1) {
return;
} else if (element.name in this.submitted || element.name in this.invalid) {
this.element(element);
}
}
}
DEMO:http://jsfiddle.net/ff77xbvb/
注意:onkeyup
函数的更高版本将忽略以下键...
// Shift => 16
// Ctrl => 17
// Alt => 18
// Caps lock => 20
// End => 35
// Home => 36
// Left arrow => 37
// Up arrow => 38
// Right arrow => 39
// Down arrow => 40
// Insert => 45
// Num lock => 144
// AltGr key => 225
答案 1 :(得分:0)
尝试以下内容。
onkeyup: function (element, event) {
if (event.which === 9 && this.elementValue(element) === "") {
return;
} else {
if (element.id != 'tx_username') {
this.element(element);
}
答案 2 :(得分:-1)