=====更新再次====(如果有人關心!) 我之前發佈的解決方案停止工作,無論出於何種原因。我在我的ajax請求中包含了一個beforeSend,並將我的js部分驗證了我的表單。現在就像一個魅力!表單不提交與AJAX
$('#form').on('submit', function(e) {
e.preventDefault(); //prevents page refresh
$.ajax({
type: "post",
beforeSend: function(){ // check that form is complete
},
url: "client_config_send2.php",
data: $(this).serialize(),
success: function(data){
alert('Thank you'); hide_request();window.location = "#top";
}
});
});
編輯
見我的回答如下,使用2 .preventDefault!
我已閱讀了許多頁面/這個例子,但由於某種原因,我無法讓它在「我的」形式上工作。 我只是試圖提交我的表單而不刷新頁面或打開新的頁面/選項卡作爲確認消息。 形式:
<form id="form" name="Configurator" method="post" action="">
.... //Client configures his product, display an image if they choose, and request a quote.
<button id="submit_button" type="submit" name="Submit" >Request</button>
</form>
的client_config_send2.php的作品,它只是拉了一堆從形式(配置,聯繫信息)的參數,並把它變成一個電子郵件。在我嘗試整合ajax之前,這部分工作正常。
的JS:
$('form').on('submit', function(e) {
e.preventDefault();
if(!validateForm(this)){
return true;
}
$.ajax({
type: "post",
url: "client_config_send2.php",
data: $(this).serialize(),
done: function(data){
alert("Thank you, we will get back to you shortly");
}
});
})
</script>
的validateForm()函數也適用,它會檢查配置是否有效,如果電子郵件/聯絡信息齊全等 在這一點上,validateForm作品:如果信息丟失,彈出警報。但是,當validateForm()返回true時,表單不提交,沒有任何反應。
我試過了成功而不是做了,在JS中返回false而不是true,還有很多我在網上找到的東西,但是我迷路了。以前從未使用過AJAX,因此我對語言的微妙之處並不是100%自信!
在此先感謝!
網址是否正確?試試這個,在瀏覽器中輸入url並點擊enter。這會返回什麼嗎? – Christos 2015-02-07 20:27:45
打開你的控制檯,點擊網絡選項卡,然後提交表單,你會看到請求發生。響應的狀態代碼是什麼? – Charlie 2015-02-08 00:07:00