【问题标题】:jQuery formular onEnterjQuery 公式 onEnter
【发布时间】:2010-10-23 00:22:59
【问题描述】:

我有一个包含两个输入字段、一个文本和一个发送按钮的表单。我想通过 jQuery .ajax() 提交而不重新加载文档。 只要单击按钮,它就可以工作,但当您按下回车/输入时,它就不会工作,然后它会在没有 ajax 方法的情况下提交。我尝试了 onEnter() 或 onSubmit(),但也没有用。

这些是代码位:

//HTML

<div id="search_form">
   <form method="POST" action="search.php">
    <input id="search_text" type="text" name="query"/>
    <input id="search_button" type="button" value="send"/>
   </form>
</div>
<div id="results"></div>

//Javascript

jQuery(function(){

$("#search_button").click(function(){
 var query = "query="+$("input[name=query]").val();   

 $.ajax({
      type: "GET",
      url: "request.php",
      data:query,
      cache:false,  
      success: function(result){ 
       $('#results').fadeIn();
      },
      error:function(xhr,err){
      alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
      alert("responseText: "+xhr.responseText);
   }  
     });
 });
});

【问题讨论】:

    标签: forms jquery


    【解决方案1】:

    不要在按钮上使用click,而是在&lt;form&gt; 上安装submit event,如下所示:

    $(function() {   
      $("#myFormId").submit(function() {
        $.ajax({
          type: "GET",
          url: "request.php",
          data: $(this).serialize(),
          cache: false,  
          success: function(result){ 
            $('#results').fadeIn();
          },
          error:function(xhr,err){
            alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
            alert("responseText: "+xhr.responseText);
          }  
        });
        return false;
      });
    });
    

    【讨论】:

    • 谢谢,听起来不错,但它仍在为我重新加载整个页面。哦,也许这是一个提示 - 单击按钮停止使用此更改
    • @JFrakes - 你需要 .preventDefault()return false 来阻止它 - 检查更新的答案:) 还将你的 type="button" 更改为 type="submit"
    • 太棒了! return false 确实做到了,感谢您快速准确的回答
    猜你喜欢
    • 2019-11-02
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 2012-05-31
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    相关资源
    最近更新 更多