在我写一些东西之后输入元素中的下面的代码.chane()事件将正常执行。
但是当我使用诸如左键之类的热键事件并更改输入值时,在我手动更改输入值之前,change()事件将不起作用。
为什么?
如何在通过函数更改其值后对输入元素执行change()事件?
<script src="jquery-1.8.0.min.js"></script>
<script src="jquery.hotkeys.js"></script>
<script>
$(function(){
$('input').change(function(){
console.log('changed');
}).bind('keydown', 'left', function(){
$(this).val('test message');
});
});
</script>
<input type="text" />
答案 0 :(得分:0)
您可以手动触发更改事件
$(function(){
$('input').change(function(){
console.log('changed');
}).bind('keydown', 'left', function(){
$(this).val('test message');
$(this).change();
});
});
答案 1 :(得分:0)
我们也可以使用它:
$(function(){
$('input').change(function(){
console.log('changed');
$(this).unbind('keydown.manuallbind');
}).bind('keydown', 'left', function(){
$(this).val('test message').blur(function(){
$(this).change();
}).bind('keydown.manuallbind','return',function(){
$(this).change();
});
});
});
此规则的优点是.change()事件执行时,例如当我们手动更改输入值时。