2015-09-06 77 views
3

好吧,我有一个简单的表格,只包含text field。当我们点击submit(通过ajax存储)时,写在文本字段中的数据存储在数据库中。 Ajax工作正常,数据已提交,但页面会自动刷新,URL包含输入字段的内容。阿贾克斯请求后页面刷新

我的表格: -

<form class="form-horizontal"> 
       <fieldset> 

       <!-- Text input--> 
       <div class="form-group"> 
        <label class="col-md-4 control-label" for="message"></label> 
        <div class="col-md-5"> 
        <input id="message" name="message" type="text" placeholder="message" class="form-control input-md" required=""> 

        </div> 
       </div> 

       <!-- Button --> 
       <div class="form-group"> 
        <label class="col-md-4 control-label" for="submit_message"></label> 
        <div class="col-md-4"> 
        <button id="submit_message" name="submit_message" class="btn btn-success">Enter</button> 
        </div> 
       </div> 

       </fieldset> 
       </form> 

阿贾克斯: -

$("#submit_message").click(function() { 
    var message = $("#message").val(); 
    $.ajax({ 
     type: "POST", 
     url: "ajax_getter.php?requestid=2", 
     data: { message: message, c: c }, 
     dataType: "html" 
    }).done(function(msg) { 
     //load_content(); 
     alert(msg); 
}); 
}); 

PHP: -

//... 
if($chat->insert("chat_threads", $arr)) 
    { 
     echo 1; 
    } 
    else 
    { 
     echo 0; 
    } 

结果后在popup中显示,页面刷新和URL变成如下所示: - chat.php?message = 454545 & submit_message = 为什么页面正在刷新?

+0

相反醒目按钮单击尝试捕表单提交.. 并添加e.preventDefault(); – Svetoslav

回答

8

似乎您的表单正在提交。尽量防止违约事件(即提交):

$("#submit_message").click(function(e) { 
    e.preventDefault(); // This prevents form from being sumbitted 
    // the rest of your code 
}); 
+0

其实我试过'e.preventDefault();',但忘了在函数调用中加上'e'。 感谢队友。 – Akshay

+0

@Akshay所以这是回答问题? –