JQuery 自动完成与 IE7 的兼容性

JQuery Autocomplete's compatibility with IE7

所以我有这段代码,它所做的就是根据可用选项列表提供建议,自动完成用户输入的内容。

为了做到这一点,我目前正在使用 jQuery 和 jquery ui 的自动完成功能。 但是,它适用于 chrome、firefox、IE11 但不适用于 IE7。我认为 IE7 已经很老了,应该被认为已经过时了,但是该软件的最终客户端使用的是 IE7,所以很可惜。

无论如何这里是 jQuery 脚本:

var data = [
  {
    label: "Apple",
    value: 1
  },
  {
    label: "Microsoft",
    value: 2
  },
  {
    label: "Amazon",
    value: 3
  }
];

$("#companyName").autocomplete({
  source: data, 
  delay: 0, 
  autofocus: true,
  minLength: 1,
  focus: function( event, ui ) {
      $("#companyName").val( ui.item.label );
      return false;
  },
  select: function( event, ui ) {
      $("#companyName").val(ui.item.label);
      $(".companyID").val(ui.item.value);
      $("#companyIDText").text(ui.item.value);
      return false;
  }
});

这里是 JSFiddle,只是为了 quickly 检查它是否真的有效。

问题是我实在想不通IE7不支持的部分。谁能帮帮我?

SN:我也坚持使用 HTML 4,如果这可以提示为什么它不起作用

编辑:所以我在 IE7 上看到的实际上什么也没有:我输入但没有弹出任何内容,而它应该开始提供建议,甚至只需单击输入文本框。无论如何,控制台没有显示任何类型的错误。我真的觉得有必要指出的是,在打开开发者工具(当然是 IE 的工具)的情况下加载页面实际上可以让它工作。而且开发者工具工具栏显示的兼容性还是7。所以我现在比以前更迷茫了

对象数组是正确的 build,在控制台上打印它会正确显示 built 数组以及我期望的结果。因此,我将其简化为只有一个字符串数组(而不是对象),并取消了自动完成小部件的 'focus' 和 'select' 选项,但是仍然是 nada,任何一种方式都不会弹出。

这是我为使其正常工作而导入的所有内容(IE7 除外):

<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.js"></script>

所以我怀疑各个版本都有问题。我看到您正在使用 jQuery UI 1.12.1 中的样式 Sheet,这可能适用于 jQuery UI 1.8.[=16,也可能不适用=]

我建议如下:

  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

示例:https://api.jqueryui.com/1.11/autocomplete/#entry-examples

测试:https://jsfiddle.net/Twisty/gdeqm2c8/2/

您的其余代码似乎是正确的。我怀疑 UI 或 CSS 正在调用不可用的东西。

来自jQuery UI 1.11 Release notes

Discontinued IE7 Support

As of this release we are no longer accepting bug reports for IE7 issues. We have also removed IE7 from our testing infrastructure. The IE7 workarounds are still present in the code, but we will remove them for jQuery UI 1.12.