我在客户网站上创建了一个表单,我正在尝试将 AJAX 用于订阅表单。
提交似乎只是重定向而不是序列化表单并使用 AJAX。
我认为这里的问题是它不知道响应数据是否“成功”。可能使用不同的变量来确定它是成功还是错误?无论哪种方式,它都应该相应地向用户显示消息,即:
成功 -> 您已注册。
错误 -> 无效的电子邮件地址。
也应该是输入空白名称的消息,因为它是必填字段,但不确定如何处理该错误..:/
完整的小提琴:http: //jsfiddle.net/pUd5P/6/
形式
<form id="newsletter" action="http://app.bronto.com/public/webform/process/" method="post">
....
</form>
JS
//ajax subscribe
$( document ).ready( function() {
$("#newsletter").submit( function() {
//Do the AJAX post
//alert("submitting");
alert(data);
$.post($("#newsletter").attr("action"),
$("#newsletter").serialize(),
function( data ) {
//alert(data);
if ( data == 'success' ) {
$('#newsletter-message').html('You have been signed up.')
.removeClass('error')
.css('visibility','visible');
} else {
$('#field-error').html('Invalid email address.')
.addClass('error')
.css('visibility','visible');
}
});
//Stop the normal POST
return false;
});
});