2014-02-06 354 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())