Javascript jQuery';输入'-键事件处理程序

Javascript jQuery';输入'-键事件处理程序,javascript,jquery,html,keypress,onkeypress,Javascript,Jquery,Html,Keypress,Onkeypress,我在使用“enter”-键作为事件将“form”中的输入附加到列表时遇到问题。 下面的代码有效,但只有当我按下“cmd+enter”组合键时,它才能将项目添加到我的列表中,并打开具有相同页面的新选项卡 我愿意实现的是,只要“表单”字段处于焦点位置,并且我按下“回车”键(而不是“cmd+enter”组合),该项就会添加到列表中,并且不会打开具有相同页面的新的额外选项卡。 (我正在Firefox 48.0和Safari 9.1.2中测试我的代码) 以下是代码的html部分: <form id=

我在使用“enter”-键作为事件将“form”中的输入附加到列表时遇到问题。 下面的代码有效,但只有当我按下“cmd+enter”组合键时,它才能将项目添加到我的列表中,并打开具有相同页面的新选项卡

我愿意实现的是,只要“表单”字段处于焦点位置,并且我按下“回车”键(而不是“cmd+enter”组合),该项就会添加到列表中,并且不会打开具有相同页面的新的额外选项卡。 (我正在Firefox 48.0和Safari 9.1.2中测试我的代码)

以下是代码的html部分:

<form id="inputWindow"> Type-in here: <input type='text' name='input'></input></form>
在此处键入:
下面是代码的jQuery部分

$(document).ready(function() {
 $('#inputWindow').keypress(function(event) {

if (event.which == 13){
var answer = $("input[name=input]").val();
    $('.list').append('<div class="item">' + answer + '</div>');
   });
});
$(文档).ready(函数(){
$('#inputWindow')。按键(函数(事件){
if(event.which==13){
var answer=$(“输入[name=input]”)val();
$('.list').append(''+answer+'');
});
});

您缺少一些
})

$(文档).ready(函数(){
$('#inputWindow')。按键(函数(事件){
if(event.which==13){
var answer=$(“输入[name=input]”)val();
$('.list').append(''+answer+'');
}
});
});

实际上,它更易于使用。提交而不是。按键事件。 通过向html部分添加onsubmit=“return false”,可以轻松解决页面重新加载的问题。因此,代码应如下所示: html部分:

<form id="inputWindow" onsubmit="return false"> Type-in here: <input type='text' name='input'></input></form>
在此处键入:
jQuery部分(假设您有$(document.ready):

$('#inputWindow')。提交(函数(){
var answer=$(“输入[name=input]”)val();
$('.list').append(''+answer+'');
});

我只是忘了粘贴,问题仍然是一样的。@编辑它。在我的js FIDLE中,只有按enter键而不按cmd键时才会触发事件。当我按下cmd+enter时,它不会触发事件将提交事件绑定到表单,因为enter会触发隐式提交,而不是对问题进行排序,你可以提供帮助,至少告诉我怎么做?我的评论是作为评论的。如果绑定一个提交处理程序解决了您的问题,那就太好了。如果你想知道如何做这些事情,在谷歌上搜索和做你自己的研究会让你走很长的路。因为你懒得投资自己的时间而期望我投资我的时间是不礼貌的,这种行为在这里通常是不能容忍的。
<form id="inputWindow" onsubmit="return false"> Type-in here: <input type='text' name='input'></input></form>
$('#inputWindow').submit(function() {
var answer = $("input[name=input]").val();
    $('.list').append('<div class="item">' + answer + '</div>');
});