单击按钮时,我想在输入值中添加“a”
这是我的代码(使用 jQuery 1.4.4):
$("#button").click(function(){
$("#input").trigger("focus");
var e = jQuery.Event("keypress");
e.which = '97';
$("#input").trigger(e);
})
但是,它似乎只触发了“焦点”事件,而未能“按键”。
我使用了触发方法:
$('#selector').val(quantity).trigger("input");
像这样??对不起,我对你的文章感到困惑..
$("#button").click(function(){
$("#input").trigger("keypress") // you can trigger keypress like this if you need to..
.val(function(i,val){return val + 'a';});
});
为什么不只是附加到val()
?
$("#button").click(function(){
$("#input").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);
})
根据文档
尽管 .trigger() 模拟了一个事件激活,并带有一个合成的事件对象,但它并不能完美地复制一个自然发生的事件。
所以你能做的最好的就是
$("#button").click(function(){
$("#input").trigger("focus").val($("#input").val() + 'a');
})
如果您需要考虑当前光标和文本选择...
这不适用于 Chrome 上的 AngularJS 应用程序。有人指出触发事件不会使字符在输入字段中可见(至少,这是我所看到的)。此外,之前的解决方案没有考虑当前光标位置和输入字段中的文本选择。我不得不使用一个很棒的库jquery-selection。
我有一个自定义的屏幕数字键盘,可以填写多个输入字段。我不得不...
在模糊时,保存当前的文本选择(开始和停止)
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'})
尝试这个 :
$("#triggerbtn").click(function(){
$("#InputField").trigger("keypress")
.val(function(i,val){
return val + 'j';
});
});
您不需要按键或任何其他输入事件,只需使用val
.. 并将其聚焦...
尝试这个
$("#button").click(function(){
$("#input").val('a').focus();
})