[英]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 ,只是為了快速檢查它是否真的有效。
問題是我無法真正弄清楚 IE7 無法支持的部分。 誰能幫我嗎?
SN:我也堅持使用 HTML 4,如果這可以提示它為什么不起作用
編輯:所以我在 IE7 上看到的實際上什么都沒有:我輸入並沒有彈出任何內容,而它應該開始給出建議,即使只需單擊輸入文本框。 無論如何,控制台都沒有顯示任何錯誤。 我真正覺得需要指出的是,在打開開發者工具(當然是 IE 的工具)的情況下加載頁面實際上可以正常工作。 而且開發者工具工具欄上顯示的兼容性還是7。所以我現在比以前更迷茫
對象數組是正確構建的,在控制台上打印它會正確顯示構建的數組以及我期望它的樣子。 因此,我將其剝離為僅字符串數組(而不是對象),並取消了自動完成小部件的“焦點”和“選擇”選項,但仍然沒有,任何一種方式都沒有彈出。
這是我為了使其工作而導入的所有內容(除了 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 的樣式表,這可能適用於 jQuery UI 1.8,也可能不適用。
我會建議以下幾點:
<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/
您的代碼的 rest 似乎是正確的。 我懷疑 UI 或 CSS 正在調用不可用的東西。
停止支持 IE7
從這個版本開始,我們不再接受針對 IE7 問題的錯誤報告。 我們還從我們的測試基礎架構中刪除了 IE7。 IE7 解決方法仍然存在於代碼中,但我們將為 jQuery UI 1.12 刪除它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.