jQuery 验证,为元素禁用 onkeyup
jQuery validation, disabling onkeyup for an element
我正在使用 jQuery 验证,我想为某个元素禁用 keyup 验证,所以我使用下面的代码:-
$("form").validate({
onkeyup: function (element) {
if (element.id == 'tx_username') {
return false;
}
}
这只是为所有内容禁用它,而不仅仅是所需的元素。有谁知道我如何才能仅针对指定的元素禁用 keyup 验证。 'tx_username' 在这种情况下
尝试使用 jQuery 的 .off()
method:
$("#tx_username", form).off("keyup");
试试下面的方法。
onkeyup: function (element, event) {
if (event.which === 9 && this.elementValue(element) === "") {
return;
} else {
if (element.id != 'tx_username') {
this.element(element);
}
参考 link - jQuery.validate.js onkeyup = true error
This just disables it for everything and not just the desired element.
当您使用 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);
}
}
}
演示: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
我正在使用 jQuery 验证,我想为某个元素禁用 keyup 验证,所以我使用下面的代码:-
$("form").validate({
onkeyup: function (element) {
if (element.id == 'tx_username') {
return false;
}
}
这只是为所有内容禁用它,而不仅仅是所需的元素。有谁知道我如何才能仅针对指定的元素禁用 keyup 验证。 'tx_username' 在这种情况下
尝试使用 jQuery 的 .off()
method:
$("#tx_username", form).off("keyup");
试试下面的方法。
onkeyup: function (element, event) {
if (event.which === 9 && this.elementValue(element) === "") {
return;
} else {
if (element.id != 'tx_username') {
this.element(element);
}
参考 link - jQuery.validate.js onkeyup = true error
This just disables it for everything and not just the desired element.
当您使用 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);
}
}
}
演示: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