Javascript Can';使用e.preventDefault()时,在输入框中键入t;

Javascript Can';使用e.preventDefault()时,在输入框中键入t;,javascript,jquery,ajax,Javascript,Jquery,Ajax,当用户在html输入框上按enter键(使用键盘)时,我试图调用Ajax来实现我网站上的搜索功能。要防止按enter键后加载页面,我使用e.preventDefault()在ajax调用中,但我无法输入框的类型。它工作正常,但无法在输入框上输入。你能告诉我我做错了什么吗 $(document).keypress(function(e) { e.preventDefault(); var value = $('#txt_name').val(); if(e.whi

当用户在html输入框上按enter键(使用键盘)时,我试图调用Ajax来实现我网站上的搜索功能。要防止按enter键后加载页面,我使用
e.preventDefault()在ajax调用中,但我无法输入框的类型。它工作正常,但无法在输入框上输入。你能告诉我我做错了什么吗

$(document).keypress(function(e) {
     e.preventDefault();

     var value = $('#txt_name').val();

     if(e.which == 13) {
        $.ajax({
        type:"POST",
        url:"doSearchEnter.php",
        data:{
            'key' : value
             },
        success:function(res){
            $('#showSearchResult').html(res);
             }
       });
    }
});

移动您e
e.preventDefault()在条件内,如:

$(document).keypress(function(e) {


var value = $('#txt_name').val();

if(e.which == 13) {
    e.preventDefault();
    $.ajax({
    type:"post",
    url:"doSearchEnter.php",
    data:{
        'key' : value
        },
    success:function(res){
        $('#showSearchResult').html(res);
        }
   });
  }
});

您无法在
输入中键入
,因为您正在抑制所有击键的默认行为

您应仅在使用
enter
键时禁止此操作:

$(document).keypress(function(e) {
    var value = $('#txt_name').val();
    if(e.which == 13) {
        e.preventDefault();    // Moved this into here.
        $.ajax({ ...
    }
});

等等,为什么不阻止默认值只用于按下回车键,所以在
if
语句中???@A.Wolff抱歉,我是Jquery的新手:)@A.Wolff哦,我明白了。谢谢