按下回车键时如何触发 onclick 功能? [复制]

Posted

技术标签:

【中文标题】按下回车键时如何触发 onclick 功能? [复制]【英文标题】:How can I trigger onclick function when I press enter button? [duplicate] 【发布时间】: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

【问题讨论】:

【参考方案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 你能告诉我我的回答有什么问题吗?我很乐意改进它... 好吧,请给我点赞……同样的问题也给反对者……不明白为什么我们的答案没有用。

以上是关于按下回车键时如何触发 onclick 功能? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

java中如何获取网页中鼠标点击过的事件

Delphi6 如何给button按钮添加快捷键(回车)

jquery contenteditable enter“当​​有人按下回车键时如何触发shift-enter?”

Javascript中如何按下回车键(Enter)触发click事件

鼠标的点击事件&点击的5中状态

按下回车键时文本字段中的 KeyListener 未触发