如何使用jQuery / vanilla JavaScript在没有用户交互的情况下触发事件?

时间:2016-12-23 03:40:07

标签: jquery keypress

我有一个基本的输入字段。当页面完成加载时,我想自动关注输入字段,设置一个值,最后触发“输入”。没有用户触发这些事件的按键。

在下面的代码中,前两个步骤正常,但是从不触发回车键(触发时我有一个警报)。任何人都可以提供有关如何实现这一目标的见解吗?

$(document).ready(function () {
    $("#myInput").focus();
    var e = jQuery.Event("keydown");
    e.which = 13;
    $("#myInput").val("test");
    $("#myInput").trigger(e);
});

2 个答案:

答案 0 :(得分:0)

可能会添加keyCode来解决您的问题。

 $(document).ready(function() {
        $("#myInput").focus();
        var e = jQuery.Event("keypress");
        e.which = 13; 
        e.keyCode = 13; 
        $("#myInput").val("test");
        $("#myInput").trigger(e);
 }); 

答案 1 :(得分:0)

我尝试了fllowing,这很有效。也许您应该检查keydown事件处理程序以及您调用它的位置。如果你在触发器功能之后移动底部的keydown事件处理程序,它将无法工作。



$(document).ready(function() {

            var e = jQuery.Event('keydown', {
                which: 50
            });
            
            $('input').keydown(function() {
                alert("triggered!");
            });

            $('input').trigger(e);

        });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input type="button" value="button">
&#13;
&#13;
&#13;