【问题标题】:How can I trigger onclick function when I press enter button? [duplicate]按下回车键时如何触发 onclick 功能? [复制]
【发布时间】:2016-09-03 11:24:21
【问题描述】:

我使用下面的代码根据用户文本输入更新 url 链接:

<input type="text" id="q" />
<input type="button" id="submit" value="submit" />

<script>
$(function () {
$("#submit").click(function() {
    var url = "/tag/";
    url += $("#q").val();
    window.location = url;
});
});
</script>

现在当有人点击提交按钮时它工作得很好。我想要的是让它在用户按下回车按钮时也能工作。 Fiddle HERE

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    试试这个:

    $(document).keypress(function(e) {
     if(e.which == 13) {
        var url = "/tag/";
        url += $('#q').val();
        window.location = url;
     }
    });
    

    【讨论】:

    • 您可以触发点击处理程序,而不是重复代码:$("#submit").click()
    • 我试过了,但是不行。无法弄清楚我做错了什么:(您能检查一下我上面提供的小提琴吗?非常感谢!请记住,我想同时使用这两个功能(提交按钮单击 + Enter Press)
    • @Marsel 尝试更新代码
    • @jacob 它工作正常。非常感谢
    【解决方案2】:

    您可以简单地使用$(document).keypress() 为此目的,从.click() 中提取您的函数以避免像这样的代码复制:

    <input type="text" id="q" />
    <input type="button" id="submit" value="submit" />
    
    <script>
    $(function () {
    
    var executeFunction = function(){
        var url = "/tag/";
        url += $("#q").val();
        window.location = url;
    };
    
    $("#submit").click(executeFunction);
    
    $(document).keypress(function(event) {
        if(event.which == 13) {
            executeFunction();
        }
    });
    });
    </script>
    

    更新

    更好的解决方案是使用 jquery .submit() event handler

    <input type="text" id="q" />
    <input type="button" id="submit" value="submit" />
    
    <script>
    $(function () {
    $("#submit").submit(function() {
        var url = "/tag/";
        url += $("#q").val();
        window.location = url;
    });
    });
    </script>
    

    【讨论】:

    • @downvote 你能告诉我我的回答有什么问题吗?我很乐意改进它...
    • 好吧,请给我点赞……同样的问题也给反对者……不明白为什么我们的答案没有用。
    猜你喜欢
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多