2014-02-06 352 views
2

我想提交一個表單而不刷新頁面,從我讀過的應該用ajax工作,我做錯了什麼?提交表單而不刷新頁面ajax,php,javascript?

這一切工作與PHP和東西時,我這樣做:

document.getElementById("msg_form").submit(); 

但我希望它無需刷新頁面提交。的HTML

部分:

<form name="msg_form_name" id="msg_form" class="email" action="mailer.php"> 
<p>Your E-mail:</p> 
<input id="email_form" name="email" type="text" /> 
<p>Amount:</p> 
<input id="amount_form" name="amount" class="amount_num" type="text" maxlength="5" /> 
<div id="msg_txt_lenght">characters left: 38</div> 
<p>Message:</p> 
<input id="message_form" name="message" class="message_form_lim" type="text" > 
<input type="hidden" id="storeUrl_id" name="storeUrl_form" value="Nan"></form> 
</form> 

部分的javascript:

$('#msg_form').submit(function (e) { 
    e.preventDefault(); 

$.ajax({    
type: 'post', 
url: 'mailer.php', 
data: $('form').serialize(), 
success: function() { 
alert('form was submitted'); 
} 
    }); 

    return false; 
}); 

在此先感謝。

編輯:可能有固定它有它提交,但沒有派提交

+1

所以什麼問題?它工作嗎?什麼不行? –

+0

嘗試POST全部大寫......不知道這是否是瘋狂的,但是很好的做法 – VIDesignz

+0

您是否安裝了JQuery? – VIDesignz

回答

4

解決它剛剛更換:

$('#msg_form').submit(function (e) { 
    e.preventDefault(); 

$.ajax({    
type: 'post', 
url: 'mailer.php', 
data: $('#msg_form').serialize(), 
success: function() { 
alert('form was submitted'); 
} 
    }); 

    return false; 
}); 

與此代替

$.post('mailer.php', $('#msg_form').serialize())