1

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

4

2 回答 2

2

好的,这就是我想出的。我使用了您的代码并复制了您的错误。

IE不同的原因然后说...... firefox,是这个例程:

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

在 Firefox 中,ui.item 不为空,在 IE 中为空。所以在 IE 中,它必须获取 '<option value="foo">foo</option>' value 属性的实际值,并与文本框中的内容进行比较。

这是问题所在:

value="foo" 必须与 >foo< 中的内容完全匹配

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

模糊时会导致它清除字段

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

将不会

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

于 2010-11-23T06:13:35.643 回答
0

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

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

到:

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

这样,您将匹配 TEXT<option value="VALUE">TEXT</option>而不是 VALUE。

于 2010-12-09T08:22:45.297 回答