我想在点击按钮时将'a'添加到输入值
这是我的代码(使用jQuery 1.4.4):
$("#button").click(function(){
$("#input").trigger("focus");
var e = jQuery.Event("keypress");
e.which = '97';
$("#input").trigger(e);
})
然而,它似乎只是触发'焦点'事件,但未能'按键'。
答案 0 :(得分:18)
我用过:
list($pdf_platform_size, $pdf_capacity ,$pdf_accuracy) = array_map('trim', explode(' - ', $pdf_select_specification));
答案 1 :(得分:12)
$("#button").click(function(){
$("#input").trigger("keypress") // you can trigger keypress like this if you need to..
.val(function(i,val){return val + 'a';});
});
答案 2 :(得分:4)
为什么不只是附加到val()
?
$("#button").click(function(){
$("#input").val(
$("#input").val() + "a"
);
})
答案 3 :(得分:2)
我知道如何处理它。
将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);
})
答案 4 :(得分:1)
虽然.trigger()模拟事件激活,但完成了 合成事件对象,它不能完美复制一个 自然发生的事件。
所以你能做的最好的就是
$("#button").click(function(){
$("#input").trigger("focus").val($("#input").val() + 'a');
})
答案 5 :(得分:0)
如果您需要考虑当前光标和文本选择...
这对我来说不适用于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'})
答案 6 :(得分:0)
尝试一下:
$("#triggerbtn").click(function(){
$("#InputField").trigger("keypress")
.val(function(i,val){
return val + 'j';
});
});
答案 7 :(得分:-1)
您不需要按键或任何其他输入事件只需使用val
..并将其集中......
试试这个
$("#button").click(function(){
$("#input").val('a').focus();
})