jQuery帖子与序列化IE问题

时间:2011-05-04 11:28:24

标签: jquery ajax serialization post

var jqxhr = $.post(url, $("#saveShipAdrs").serialize(), function(response) {
      // set form values to view
      var fld;
      $('#editShipAdrs input[name*="Livraison"]').each(function(){ 
          fld = "#show"+$(this).attr("name");
          $(fld).html($(this).val());
      });
      // set success message
      $(".success").html("Shipping address updated");
    })
    .error(function(xhr, ajaxOptions, thrownError) {
         $(".error").html("Shipping address cannot be updated");
         alert(xhr.status+"\n"+xhr.statusText+"\n"+thrownError);
    });
 });

此处“saveShipAdrs”是表单的ID。

此代码在FF中运行良好,但在IE中运行不正常。 在IE中它给出了

xhr.status = 0
xhr.statusText = error
thrownError = Invalid Argument

我试过serializeArray并试图寻找其他类似的问题,但没有找到解决方案。

2 个答案:

答案 0 :(得分:0)

Dr.Molle建议,当因为不同的域而取消请求时,将返回状态0。

问题在于,我将表单标记的action属性保留为空以在self(action =“”)上提交。

这并不意味着域名不同,但是当我将当前页面的URL放在action属性中时,问题就解决了。

如果有人想详细解释空行动的确切问题,我们将不胜感激。

答案 1 :(得分:0)

jquery有IE 10(标准/ Quirks模式)的错误,.serialize()和.serizlizeArray()无法序列化表单数据。

<div id="showRole">
<form>
<input name="roleName" type="text" />
<input name="des" type="text" />
</form>
</div>

修复方法是:var data = $(“#showRole input”)。serialize();使用div的id引用表单并序列化数据。

IE只是更改了DOM树,而jquery无法获取元素。