Jquery ui Autocomplete 1.9源函数访问选项

时间:2012-10-28 16:52:45

标签: jquery-ui

在我为jquery ui autocomplete 1.9.1的源选项定义的函数中,我想访问jquery ui自动完成的选项。

通过检查此函数中的“this”,我发现我可以使用this.options访问选项。我想知道这是否是正确的方法,所以我不依赖于内部规格?

1 个答案:

答案 0 :(得分:0)

我这样做了。应该有更简单的方法,但我没有找到它。

<script>
    $('#element').autocomplete({
        self: null,
        myOption: 'test',
        source: function (request, response) {
            self = this;
            var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
            response($('#combobox').children("option").map(function () {
                var text = $(this).text();
                if (this.value && (!request.term || matcher.test(text)))
                    return {
                        label: text.replace(
                            new RegExp(
                            "(?![^&;]+;)(?!<[^<>]*)(" +
                            $.ui.autocomplete.escapeRegex(request.term) +
                            ")(?![^<>]*>)(?![^&;]+;)", "gi"
                            ), "<strong>$1</strong>"),
                        value: text
                    };
            }));
        },
        select: function (event, ui) {
            console.log(self.options.myOption);
        }
    });
</script>
<html>
    <input type="text" id="element" />
    <select id="combobox">
        <option value="t1">Python</option>
        <option value="t2">PHP</option>
        <option value="t3">ASP.NET</option>
        <option value="t4">C++</option>
        <option value="t5">Ruby</option>
    </select>   
</html>

提示找到here

在小提琴http://jsfiddle.net/f7qvu/1/

上查看