我正在尝试捕获Enter键,如下所示:

$("#txt1").keypress(function(event){

 if(event.which==13) //Also tried using event.keycode
  $("#add").load("newjsp.jsp?q="+this.value)
})


但是,每当我按Enter键时,该文本就会被删除,并且不会以应有的形式(#add)显示。我怎样才能做到这一点?

我在以下代码中也遇到了问题,

     $("#txt1").keyup(function(event){

             $("#add").load("newjsp.jsp?q="+this.value)
        })

<form>
    Comment: <input type="text" id="txt1"></input>
 </form>
        <p><p></p></p>
           <form id="add">
           </form>


当我运行此代码时,文本框中的文本将添加到我的表单(#add)中,但是当我按空格键时,该文本将被删除(从#add表单而不是文本框中删除),然后不再文字已添加。我尝试使用keydownkeypress,但是仍然存在相同的问题。我无法理解问题所在,因为this.value在文本框中为我提供了完整的值!包括空格。

最佳答案

您的第一个例子是正确的例子。除非您需要在按“ enter”后防止事件冒泡。默认情况下按Enter即可提交表单。 FinalFrag关于空格是正确的

$('#txt1').keypress(function(e){
    if (e.which===13) {
        e.preventDefault();
        e.stopImmediatePropagation();
        $("#add").load("newjsp.jsp", {q: $(this).val()} );
    }
});


*编辑以反映Tomalak的评论。

07-24 09:51
查看更多