jQueryUI自动完成与IE 11有线行为
jQuery UI autocomplete with IE 11 - wired behavior
我想设置自动完成字段。所以我写了
$(document).ready(function() {
$("#mytext").autocomplete({
source: function(request, response) {
$.getJSON("/ajax/autocomplete.php?term=" + $.trim(request.term), function(data) {
response($.map(data, function(item) {
return {label: highlightResult(item.label, $.trim(request.term))};
}));
});
},
minLength: 0
}).each(function() {
$(this).data("ui-autocomplete")._renderItem = function(ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + "</a>")
.appendTo(ul);
};
});
...
$("#mytext").focusin(function() {
$(this).autocomplete("search", $(this).val());
});
});
使用HTML:
<div style="visibility: hidden;"/>
<input type="text" id="mytext" />
</div>
<button onclick="showDiv();">Click To Show</button>
这段代码在谷歌浏览器上运行良好。但它在IE 11上运行起来很奇怪。
默认情况下,输入是隐藏的,但在单击按钮时会显示。
怪异行为:
1) 刷新时,自动完成菜单将出现在窗口(正文)的左上角
2) 当文本框中有文本时,菜单不显示。我看到data
参数有时(当有文本时)是未定义的-wierd。。。
我该怎么处理这些问题?我没有找到任何有用的解决方案。
我也有同样的问题。页面刷新后会显示一些自动完成功能。不知道为什么会发生这种情况,因为我在表单中有很多控件,而bug只在很少的控件中发生
另一种修复方法,正如Marc Thomann所说的那样-禁用自动完成并(我的技巧)添加
$(document).ready(function() {
...
/**** that is last line ***//
if (msieversion() === 11) {setTimeout(enable_autocomplete, 200);}
//函数enable_autocomplete()包含$(".my_selector").autocomplete("option"、"disabled"、false);});
所以我的代码是:
var autocomplete_options = {/** your usual options **/};
if (msieversion() === 11) {
autocomplete_options.disabled = true;
};
$("#mytext").autocomplete(autocomplete_options);
另一种可能性是使用选项创建自动完成
disabled: true
并且在需要时启用它
当元素的可见性设置为隐藏时,IE不会为其处理事件,因此当DOM准备好时,它会尝试将事件附加到无法接收事件的东西上,从而导致未定义的行为。不要使用$(document).ready()
,而是在showDiv
函数
相关文章:
- 为什么这在IE中的工作方式与在Firefox中不同
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- jQuery blueimp文件上传:将N-1个文件上传到IE中的服务器
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 设置倒计时计时器,IE出现问题
- 仅在IE中,javascript中的时区名称不正确
- 在IE中加载Firebug Lite时出现问题
- 为什么我得到错误IE修剪方法是't支持
- IE中的CSS翻转动画:翻转的一面显示镜像内容
- 通过具有IE<11
- IE在将字符串转换为日期时从日期中删除4小时
- 如何在多个jQueryUI日期选择器中屏蔽特定日期
- 列表样式在IE中未设置为none,但在IE中适用
- IE/Chrome中未定义的函数,但Firefox中没有
- jQueryUI Progress Bar
- Jquery Modal表单登录与AJAX-ASP经典上的IE 9
- JqueryUI 工具提示可防止<选择>元素下拉列表在 IE 11 中保持关闭
- jQueryUI自动完成与IE 11有线行为