我尝试在qunit test中手动触发key-up事件,但由于手动触发key-up事件不会改变输入值,因此失败。
$('input').on('keyup', function (event) {
$('div').html($('input').val());
});
var e = $.Event('keyup', {
keycode: 68
});
$('input').trigger(e); //this trigger will not change the input value
此触发器可以使用,但问题是输入值永远不会改变。
答案 0 :(得分:4)
您无法使用简单的触发器添加角色。触发器只会触发事件,但不会触发默认行为。你需要模拟它。
为此,您可以使用以下代码:
if(event.isTrigger && event.keycode) this.value += String.fromCharCode(event.keycode);
它将检查事件是否被触发,然后打印该值。
最终代码:
$('input').on('keyup', function (event) {
if(event.isTrigger && event.keycode) this.value += String.fromCharCode(event.keycode);
$('div').html($('input').val());
});
var e = $.Event('keyup', {
keycode: 68
});
$('input').trigger(e);