向用户显示表单已成功提交

时间:2013-08-22 03:36:43

标签: javascript jquery ajax forms validation

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

可能是什么问题?

1 个答案:

答案 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);