Internet Explorer 从 ajax 调用中插入选择选项

Posted

技术标签:

【中文标题】Internet Explorer 从 ajax 调用中插入选择选项【英文标题】:Internet Explorer inserting select options from ajax call 【发布时间】:2012-06-16 16:56:41 【问题描述】:

这适用于 Firefox 和 chrome,但不适用于 Internet Explorer。我需要这个才能在 Internet Explorer 中工作。

IE 附加的是开始标签,而不是内部文本和结束标签。 提前致谢。

JS:

function go() 
   $.post("ajax-select.html", "", function(resp)
      $('#dropdown').append($('#newOptions option', resp));
   

HTML:

<body>
   <select id="dropdown">
   </select>
   <input type="submit" value="go" onclick="go();" />
</body>

ajax-select.html:

<div>
   <div id="newOptions">
      <option value="opOne">one</option>
      <option value="opTwo">two</option>
   </div>
</div>

【问题讨论】:

@JonathanSampson 试过了,结果一样。 innerHTML=" 已解决。我仍然不确定问题出在哪里,但是如果我使用 div 标签而不是选项标签。 one 然后将ajax函数替换为: $('#newOptions div', resp).each(function(i, d ) $('#dropdown').append( $('');); 您对错误的标记是正确的,但是一旦您纠正了您就不需要更改 javascript。我刚刚在对您的页面进行故障排除时遇到了相同的解决方案。 【参考方案1】:

你应该试试

$('#dropdown').html($('#newOptions option', resp));

也可以看看this的回答

【讨论】:

我认为问题在于 jquery 在 IE 中处理选项标签的方式,而不是附加。【参考方案2】:

您的回答不正确。返回的实际 HTML 是:

<div>
  <div id="newOptions">
    <div value="opOne">one</div>
    <div value="opTwo">two</div>
  </div>
</div>

改正,一切正常:

<div>
  <select id="newOptions">
    <option value="opOne">one</option>
    <option value="opTwo">two</option>
  </select>
</div>

使用上述标记(选项正确嵌套在选择元素中),您可以继续使用以下内容:

$(function()
    $("input[value='go']").on("click", function()
        $.post("ajax-select.html", function(resp)
            $(resp).find("option").appendTo("#dropdown");
        );
    );
);

【讨论】:

对不起,这只是一个类型-o。它仍然对我不起作用。 users.csc.tntech.edu/~elkrohnfel21/testing/select.html @Eric 您测试的是哪个版本的 IE?这在 IE10 中对我来说很好用。

以上是关于Internet Explorer 从 ajax 调用中插入选择选项的主要内容,如果未能解决你的问题,请参考以下文章

Internet Explorer 中允许的 Ajax 跨域请求

Internet Explorer 取消 ajax 请求

Internet Explorer 9 AJAX 请求上没有会话 Cookie

在 Internet Explorer 9 中更改域名后,Ajax 停止工作

Internet Explorer 中的跨域 POST 请求 ajax

Internet Explorer 中的跨域 POST 请求 ajax