我在jQuery UI 1.8rc3中有新的自动完成小部件在Firefox中运行良好。它在IE中根本不起作用。有人可以帮助我吗?
HTML:
<input type="text" id="ctrSearch" size="30">
<input type="hidden" id="ctrId">
使用Javascript:
$("#ctrSearch").autocomplete({
source: "ctrSearch.do",
minLength: 3,
focus: function(event, ui){
$('#ctrSearch').val(ui.item.ctrLastName + ", " + ui.item.ctrFirstName);
return false;
},
select: function(event, ui){
$('#ctrId').val(ui.item.ctrId);
return false;
}
});
结果(IE 8):
红色框是jQuery创建的<ul>
元素。
http://i40.tinypic.com/6q9quu.jpg
我也遇到了这个错误:
Line: 116 Error: Invalid argument.
当我在IE8脚本调试器中打开它时,它突出显示jquery.min.js第116行的f[b]=d
。请注意,我正在使用托管在Google服务器(https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js)上的jQuery版本1.4.2。
我尝试删除了一些选项,但即使我在没有选项的情况下调用.autocomplete()
,也没有选择源代码选项,我仍然会得到相同的结果。
再一次,它在Firefox中运行,但在IE中却没有。有什么建议吗?
感谢。
更新:按照建议,我使用了jquery.js(而不是jquery.min.js)并在第4618行得到了错误。请参阅下面的jitter答案。请参阅几天前发布的this other Stack Overflow question。
更新2 我发现jQuery UI自动填充使用了无效的属性this.element.height
,当它应该使用函数this.element.height()
答案 0 :(得分:5)
如果我理解了这一点,那么您引用的行似乎就是style
函数中jquery.1.4.2.js中的第4618行。这只能意味着Autocompleter插件尝试设置IE8不理解的样式值,或者不允许以这种方式访问/更改。
style[ name ] = value; //style == elem.style from the passed in element
答案 1 :(得分:1)
我在同一条线上有完全相同的错误,但对于一个完全不同的交易。也就是说,我没有做任何与自动完成有关的事情;相反,我的发生是因为我在jQuery中尝试这个......
$(this).css('background', 'rgba(64,255,64,.4)');
jQuery试图做什么......
style [ 'background' ] = 'rgba(64,255,64,.4)';
当然,它失败了,因为rgba不是Internet Explorer支持的CSS值。所以你并不孤单,但在我的情况下,我只是做错了。适当的jQuery语法就是这个......
$(this).css({backgroundColor: '#40ff40', opacity: .4});
这是我的来源......