我是jquery的初学者,但我已尽力做到这一点,但不幸的是我错过了什么
如何在文本输入为空白时临时禁用键盘事件,并在输入内容后再次启用它?
我无法在按键中捕获退格,所以我使用了keyup。这是我的代码
$('#searchBox').keyup(function(e){
if(e.keyCode != '18' && e.keyCode != '91' && e.keyCode != '17' && e.keyCode != '16' && e.keyCode != '20' && e.keyCode != '27' && e.keyCode != '113' && e.keyCode != '115' && e.keyCode != '118' && e.keyCode != '119' && e.keyCode != '120' && e.keyCode != '122' && e.keyCode != '123' && e.keyCode != '44' && e.keyCode != '19' && e.keyCode != '45' && e.keyCode != '46' && e.keyCode != '36' && e.keyCode != '33' && e.keyCode != '34' && e.keyCode != '35' && e.keyCode != '39' && e.keyCode != '37' && e.keyCode != '38' && e.keyCode != '9'){
if(e.keyCode == '8' && $(this).val()==""){
//what will i put here
}else if(e.keyCode == '8' && $(this).val()!=""){
refreshWookmark($(this).val());
}else{
refreshWookmark($(this).val());
}
}
});
答案 0 :(得分:0)
您可以{空白输入return
:
$("#idOfElement").keyup(function() {
if (!this.value == '') {
//do stuff
} else {
return;
}
});
答案 1 :(得分:0)
不要禁用它,只需检查输入是否存在以及keyCode
是您认为有效的:
$('#searchBox').on('keyup',function(e){
var bad = ['18','91','17','16','20','27','113','115','118','119','120','122','123','44','19','45','46','36','33','34','35','39','37','38','9'],
isBad = false;
for(var i=bad.length;i--;){
if(e.keyCode == bad[i]){
isBad = true;
break;
}
}
if(this.value.length > 0 && !isBad){
refreshWookmark(this.value);
}
});
当输入存在且keyCode
正确时,这只会运行你想要的功能,我认为这就是你想要的。
此外,99.9%的时间可以使用this.value
代替$(this).val()
。这节省了将this
包装到jQuery对象中的开销,然后使用内部方法获取值(基本上是this.value
)。
答案 2 :(得分:0)
如果值为空,你不能突破处理程序吗?
$(element).keyup(function(e) {
if (this.value.trim() == '')
return;
// do stuff
});
答案 3 :(得分:0)
要禁用键盘功能或其他功能,请尝试此
if()
{
obj.keyup(function () {
//code
});
}else{
obj.unbind("keyup")
}