jQuery验证,禁用元素的onkeyup
我使用的是jQuery验证,我想对某个元素禁用keyup验证,因此我使用以下代码:-jQuery验证,禁用元素的onkeyup,jquery,jquery-validate,Jquery,Jquery Validate,我使用的是jQuery验证,我想对某个元素禁用keyup验证,因此我使用以下代码:- $("form").validate({ onkeyup: function (element) { if (element.id == 'tx_username') { return false; } } 这只是对所有内容禁用它,而不仅仅是对所需元素禁用它。有人知道我如何仅对指定的元素禁用keyup验证吗?”tx_username'在这
$("form").validate({
onkeyup: function (element) {
if (element.id == 'tx_username') {
return false;
}
}
这只是对所有内容禁用它,而不仅仅是对所需元素禁用它。有人知道我如何仅对指定的元素禁用keyup验证吗?”tx_username'在这种情况下尝试使用jQuery的
.off()
:
$(“tx#u用户名”,表单)。关闭(“键控”)代码>
试试下面的方法
onkeyup: function (element, event) {
if (event.which === 9 && this.elementValue(element) === "") {
return;
} else {
if (element.id != 'tx_username') {
this.element(element);
}
参考链接-
这只是对所有内容禁用它,而不仅仅是对所需元素禁用它
当您使用onkeyup
选项时,您的自定义功能将完全超越插件的默认功能。由于您没有else
语句,因此当该字段与tx\u username
不匹配时,不会发生任何其他情况。。。有效地完全禁用onkeyup
验证
onkeyup: function (element) {
if (element.id == 'tx_username') {
return false;
}
}
解决的办法是把你的
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);
}
}
}
演示:
注意:此较新版本的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
您的if
条件需要一个else
,它将返回默认的onkeyup
code.FYI@Shazoo-来自插件版本1.11.1的代码。现在升级到了1.15版。有关更新版本,请参阅。请注意最新的onkeyup
功能如何忽略shift
、ctrl
、alt
等键。