2009-10-07 43 views
0

我很难理解如何使用jQuery及其Form插件来访问HTTP post操作返回的数据。例如,我想以浏览器的形式发布数据,处理服务器上的数据,向浏览器返回服务器响应(使用JSON),然后在浏览器中向用户显示有关该响应的信息警报 - 无需重写表单。使用jQuery和Form插件引用JSON响应POST表单数据

我想下面的jQuery代码这样做:

$(document).ready(function() { 
    $('#ajaxFormSubmit').bind('click', function(event) { 
     $('#data_entry_form').ajaxSubmit({ 
      url: "data_entry_ajax", 
      dataType: "json", 
      success: function(data) { 
       alert('Success'); 
       alert(data.save_status); 
      } 
     }); 
    }); 
}); 

服务器返回JSON对象中的以下内容:

{'save_status': 'OK', 'id_number': 2} 

但不是在形式和用户显示两个警报输入的数据,浏览器将清除表单并显示JSON回复。

我认为提交给ajaxSubmit的选项中的“成功”值自动传递了从服务器收到的响应。我已经尝试了各种向函数体传递参数的组合(参考data而不传入它,参考responseText有和没有传入任何东西),但这些也不起作用。我看过“jQuery In Action”试图理解访问对xhr对象和.ajax()函数的响应,但这也没有帮助。

回答

2

使用jQuery $.post()

<script> 
// ... 
$('#ajaxFormSubmit').bind('click', function(event) { 
    $.post(
    'data_entry_ajax', 
    $('#data_entry_form').serialize(), 
    function(data) { 
     alert('Success'); 
     alert(data.save_status); 
    }, 
    'json' 
); 
}); 
</script> 
+0

其实,这仍是消灭浏览器文件和显示JSON请求尝试。也许问题出在我的HTML中。 – chernevik 2009-10-14 15:08:41