【问题标题】:jquery autocomplete: this.menu undefinedjquery 自动完成:this.menu 未定义
【发布时间】:2011-05-05 13:04:17
【问题描述】:

我正在使用 jQuery UI 自动完成来处理一些数据。现在我有 3 个自动完成元素,其中 2 个可以正常工作,一个不能。在页面的开头,他给了我错误elem.ownerDocument is null。当我将文本放入 input 字段时,他找到了结果,但我收到了错误 this.menu is undefined (jquery.js line 6012),它指的是应该显示结果的 ul list

这里有一些代码:

$("#iName").autocomplete({
    source: widget.festivals_list,
    autofocus: true,
    focus: function (e, ui) {
        return false;
    },
    search: function (event, ui){
        ownFest = true;
        $("#iDate").removeAttr("disabled");
        $("#iTime").removeAttr("disabled");
    },
    select: function (event, ui) {
        ownFest = false;
        $(event.target).val(ui.item.label);
        selectedN = ui.item.value;
        $(widget.festivals).each(function fn(){
            if(this.id == ui.item.value){
                $("#iDate").val(this.date).attr("disabled", "disabled");
                $("#iTime").val(this.time).attr("disabled", "disabled");
            }
        });
        return false;
    }
});

HTML 代码:

<table>
                    <tr>
                        <td>Type the name</td>
                    </tr>
                    <tr>
                        <td><input type="text" id="iFest"/></td>
                    </tr>
                </table>

这会在我的input 标记上创建典型数量的属性并创建ul 列表。

<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem"></ul>

<input id="iFest" class="ui-autocomplete-input" type="text" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">

谁也有这些问题? 谢谢

(使用 jQuery 1.5.2 和 jQuery UI 1.8.11)

谢谢

【问题讨论】:

    标签: javascript jquery jquery-ui jquery-autocomplete


    【解决方案1】:

    我相信这是因为您的“this”超出了范围。

    在函数内部,“this”并不总是您认为的那样。

    通常的解决方案是引用您的全局“this”

    var element = $(this);
    

    var me = this;
    

    当你在一个函数中时,引用元素而不是“this”。

    您也可以发布您的 HTML 吗?或指出哪一行有错误?从你的sn-p我好像看不到。

    【讨论】:

    • 更改了我的问题内容
    【解决方案2】:

    您缺少自动完成引用的库。

    所以,包括这个:

    <script type="text/javascript" src="js/ui/jquery.ui.menu.js"></script>
    

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多