如何用jQuery触发输入事件?
我要添加“A”输入的值点击一个按钮如何用jQuery触发输入事件?
这里的时候是我的代码(使用jQuery 1.4.4):
$("#button").click(function(){
$("#input").trigger("focus");
var e = jQuery.Event("keypress");
e.which = '97';
$("#input").trigger(e);
})
然而,似乎只有触发“焦点'事件,但未能'按键'。
这样?对不起,我很困惑与你的作品..
$("#button").click(function(){
$("#input").trigger("keypress") // you can trigger keypress like this if you need to..
.val(function(i,val){return val + 'a';});
});
啊,'+ 1'用于阅读这个问题,而不是我看代码的方法。 – ahren 2013-03-21 11:02:23
你不需要按键或输入的任何其它事件只是使用val
..和关注它...
试试这个
$("#button").click(function(){
$("#input").val('a').focus();
})
为什么不只是追加到val()
?
$("#button").click(function(){
$("#input").val(
$("#input").val() + "a"
);
})
因为我想写一个像fancyInput这样的演示。原点事件应该是另一个按键。在这里我使用点击来简化代码。 – user1990553 2013-03-21 11:08:03
虽然.trigger()模拟的事件激活,完成一个 合成事件对象,它不完美地复制一个 天然存在的事件。
,所以你能做的最好的是
$("#button").click(function(){
$("#input").trigger("focus").val($("#input").val() + 'a');
})
我已经知道如何处理它。
将keypress事件上的eventListener添加到输入并使用val更改值。
这样就不需要触发焦点事件。
$("#button").click(function(){
var e = jQuery.Event("keypress");
e.chara = 'a';
$("#input").trigger(e);
});
$("#input").keypress(function(e){
$(this).val(e.chara);
})
在你需要考虑到当前光标和文本选择的情况下...
这是不是为我工作的Chrome的AngularJS应用。有人指出触发事件不会使字符在输入字段中可见(至少,这正是我所看到的)。另外,以前的解决方案不考虑输入栏中当前的光标位置和文本选择。我不得不使用一个美好的图书馆jquery-selection。
我有一个自定义的屏幕数字小键盘,填写多个输入字段。我不得不...
- 在焦点上,保存lastFocus。元素
-
在模糊,保存当前的文本选择(启动和停止)
var pos = element.selection('getPos') lastFocus.pos = { start: pos.start, end: pos.end}
-
当我的键盘上按下一个按钮:
lastFocus.element.selection('setPos', lastFocus.pos) lastFocus.element.selection('replace', {text: myKeyPadChar, caret: 'end'})
我用:
$('#selector').val(quantity).trigger("input");
为我工作。 – 2017-05-25 17:48:18
val()和trigger()方法链接到选择器。 – 2017-05-25 22:37:38
我的错误。我没有意识到'.val(数量)'被链接了,不像一个空的'.val()'。 – cpburnz 2017-05-26 14:01:43
根据[trigger doc](http://api.jquery.com/trigg)呃/)**,它不能完美地复制一个自然发生的事件。** – 2013-03-21 11:00:01
适用于我:http://jsfiddle.net/2YuN5/1/ ...等等,我使用的是jQuery 1.9 ..时间让你做更新。 – ahren 2013-03-21 11:00:08