自动完成组合框重置失去焦点 - 仅限IE

时间:2010-11-23 04:23:32

标签: internet-explorer jquery-ui autocomplete reset onblur

我在页面上的多个组合框上使用jquery.ui.autocomplete。仅在IE中,组合框会在失去焦点时重置(onBlur)。没有多少JS调试可以揭示原因。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

好的,这就是我想出的。我使用了你的代码并复制了你的bug。

IE之所以不同,那么说... firefox,就是这个例程:

                                    change: function (event, ui) {
                                        if (!ui.item) {

在firefox中,ui.item不是null,在IE中它是。所以在IE中它必须得到'< option value =“foo”> foo< / option>'的实际值value属性,并与文本框中的whats进行比较。

问题在于:

value =“foo”必须与> foo<

中的内容完全匹配
<option value="5">Five</option> 

模糊时会使其清除字段

<option value="Five">Five</option>

不会

在firefox和chrome中,他们通过ui所以他们没有得到这个检查,它只是继续,一切都很酷。检查以确保您的值与选项文本完全匹配。

答案 1 :(得分:0)

superfro的分析是正确的,但是如果你修改这一行代码,你可以使用option元素,其中值与文本不同:

if (this.value.match(matcher)) {

为:

if ($(this).text().match(matcher)) {

这样,您就可以匹配<option value="VALUE">TEXT</option>内的TEXT而不是VALUE。