0

我有一个将数据发送到 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。

可能是什么问题?

4

1 回答 1

1

Try using the callbacks provided by the library

    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);
于 2013-08-22T03:45:03.133 回答