我的要求是,如果文本框值大于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)
}
});
答案 0 :(得分:5)
keydown
在DOM中的值更改之前触发。
所以:
第一次触发事件时,您将第一个字符插入文本框但DOM尚未知道,因此$(this).val().length
仍为0;
第二次事件触发时,您将第二个字符插入文本框,$(this).val().length
从上次开始为1。
而是使用keyup
事件,该事件在文本框值更新后触发。
答案 1 :(得分:0)
使用keyup而不是keydown
$('#'+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)
}
});