我有一个将数据发送到CRM的表单。如果我创建一个简单的HTML表单并将数据发送到服务器,它将刷新我的网页并显示文本:
{"success":false,"error":{"message":"<whatever the error is>"}}
或
{"success":true,"result":"ok"}
在对表单进行样式设置并集成动画和验证之后,所有内容仍能完美运行。现在,使用http://jquery.malsup.com/form/#getting-started发送数据。服务器接收它,但用户不知道它是否成功。
使用这个jQuery表单插件或其他一些插件,您可能希望我使用(甚至代码),请帮助我在div中显示文本,无论操作是否成功,具体取决于服务器的响应。
我只是尝试使用此处提供的示例显示响应:http://jquery.malsup.com/form/#ajaxForm但直到现在我都失败了。
在这里,我将JSfiddle与一些表单字段和我正在使用的jQuery表单插件放在一起,以便将数据发送到服务器:http://jsfiddle.net/n78p9/1/。
我希望有人能够告诉我我做错了什么,或者告诉我另一种做法。
谢谢!
编辑@Arun:所以它看起来像这样:
submitHandler: function(form) {
$(form).ajaxSubmit({
target: '.optional',
resetForm: true,
success: function(responseText){
var result = jQuery.parseJSON(responseText);
if(!result.success){
alert(result.error.message)
}
},
error: function(){
alert('Thank you for your message! Our team will contact you in the shortest possible time.')
}
});
}
我肯定是在正确的方式,但有一个问题:错误提醒实际显示响应成功。我不懂为什么。我通过本地代理拦截了POST请求,并通过服务器重新发送,服务器发送回来了:
{"success":true,"result":"ok"}
但是剧本认为这是一个错误。这就是为什么我将该文本插入错误:警告字段:D。
可能是什么问题?
答案 0 :(得分:1)
尝试使用库提供的callbacks
var options = {
target: '#response',
success: showResponse,
clearForm: true,
success: function(responseText){
var result = jQuery.parseJSON(responseText);
if(!result.success){
alert(result.error.message)
}
},
error: function(){
alert('some error')
}
};
$('#contact-form').ajaxForm(options);