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