Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 捕获回车键_Javascript_Jquery - Fatal编程技术网

Javascript 捕获回车键

Javascript 捕获回车键,javascript,jquery,Javascript,Jquery,我正在尝试按如下方式捕获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(fu

我正在尝试按如下方式捕获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>
$(“#txt1”).keyup(函数(事件){
$(“#添加”).load(“newjsp.jsp?q=“+this.value”)
})
评论:


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

此.value确实会将按下的键添加到加载请求中。但是,您的浏览器可能会将请求的url上的空格从“q=hello”改为“q=hello”

在请求中使用该值之前,应先转义该值


在这里看一看javascript escape()函数:

对于第二个问题,您应该使用它来编码值,以便在url中使用它们:

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

         $("#add").load("newjsp.jsp?q="+encodeURIComponent(this.value));
    })
对于第一个问题,您应该阻止默认操作并停止传播:

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

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

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

*编辑以反映Tomalak的评论。

更好:
$(“#add”).load(“newjsp.jsp”,{q:$(this.val())
@Final:
escape()
绝对错误。使用
encodeURIComponent()
。谢谢你,伙计!。。。现在效果很好。那么,是不是我的浏览器无法正确理解或解释文本(即使用空格)?因为当我用javascript编写相同的代码时,它可以很好地工作,而不会转义。使用innerHTML将用现有内容覆盖以前的内容。@Rishabh:捕获Enter键的代码无效,我无法在文本框中输入文本。