Keydown事件无法正常工作
我的要求是,如果文本框值大于0,则取消选中该复选框。但是在两次关键操作后取消选中它。 我无法确定错误……请有人帮助我。
$('#'+QID+' TABLE TBODY TR').find("input[type='text']").live('keydown',function() { if($(this).val().length > 0) { $('#'+ExQID+' TABLE TBODY TR').siblings('TR').find(':checkbox').prop('checked',false) } });
keydown
在DOM中的值更改之前触发。
所以:
-
当事件第一次触发时,你将第一个字符插入到文本框中, 但DOM还不知道这个 ,所以
$(this).val().length
仍为0; -
第二次事件触发时,您将第二个字符插入文本框,
$(this).val().length
从上次开始为1。
而是使用keyup
事件,该事件在更新文本框值后触发。
使用keydown的keyup
$('#'+QID+' TABLE TBODY TR').find("input[type='text']").live('keyup',function() { if($(this).val().length > 0) { $('#'+ExQID+' TABLE TBODY TR').siblings('TR').find(':checkbox').prop('checked',false) } });