Javascript 触发按钮单击文本框中的Enter键将丢失其值

Javascript 触发按钮单击文本框中的Enter键将丢失其值,javascript,jquery,Javascript,Jquery,我有 Html: inputbox当我按enter键时,该值为零,但如果我单击按钮,它将与相同的输入值完美配合 可能会使输入框成为全球的 问题是enter键默认为提交表单,即使没有提交按钮。因此,您应该通过将事件绑定更改为keypress并使用event.preventDefault()来阻止提交,如下所示: $("#inputbox").keypress(function(event){ if(event.keyCode == 13){ event.preventDef

我有

Html: inputbox当我按enter键时,该值为零,但如果我单击按钮,它将与相同的输入值完美配合


可能会使输入框成为全球的

问题是enter键默认为提交表单,即使没有提交按钮。因此,您应该通过将事件绑定更改为
keypress
并使用
event.preventDefault()
来阻止提交,如下所示:

$("#inputbox").keypress(function(event){
    if(event.keyCode == 13){
        event.preventDefault();
        $("#search").click();
    }
});
或者,您可以使用
.submit()
触发函数,将输入类型更改为submit,并避免单独处理键和单击

HTML:


您是否尝试了
event.which
而不是
event.keyCode
?您是否阻止表单提交!尝试
$(#搜索”)。触发(“单击”)
@adeneo-没关系,jQuery内置了这个功能。美元(“#contactForm”).submit()怎么样@钛-不,是jQuery,但不是keyCode。
$(document).ready(function() {
    $("#inputbox").keyup(function(event){
        if(event.keyCode == 13){
            $("#search").click();
        }
    });

    $('#search').click(function(){
         var inputbox= $("#inputbox").val();  
        //stuff
    });
});        
$("#inputbox").keypress(function(event){
    if(event.keyCode == 13){
        event.preventDefault();
        $("#search").click();
    }
});
<form action="" method="post" id="contactForm">
    <input id='inputbox' name="inputbox" type="text" />
    <input type="submit" value="Search">
</form>
$(document).ready(function() {
    $("#contactForm").submit(submitSearch);
}); 

function submitSearch(event) {
     event.preventDefault();

     //do other stuff
     alert($("#inputbox").val());
}