0

我有一个小部件,它是输入和按钮的包装器。我想显示输入焦点和按钮单击的下拉列表。它在按钮单击时工作正常,输入工作正常,只有一次之后不起作用。即使您选择了一个选项,它也不起作用....如果您使输入模糊,那么它会正常工作,直到您选择某些东西或使用按钮单击....下面是我的代码.....请解决任何问题。 ...................................

  input = $("<input>")
                .appendTo(wrapper)
                .val(value)
                .attr("title", "")
                .autocomplete({
                    delay: 0,
                    minLength: 0,
                    appendTo: wrapper,
                    source: function (request, response) {
                        var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");

                        response(select.children("option").map(function () {
                            var text = $(this).text();
                            if (this.value && (!request.term || matcher.test(text)))
                                return {
                                    label: text,
                                    value: text,
                                    option: this
                                };
                        }));

                    },

                .focus(function () {                    
                    $(".ui-combobox").addClass("focus");                    

                    if (wasOpen) {
                        return;
                    }

                    input.autocomplete("search", "");
                })

                .blur(function () {                 
                    $(".ui-combobox").removeClass("focus");
                });

            // creating the anchor button
            $("<button></button>")
                .attr("tabIndex", -1)
                .addClass("br-r")
                .appendTo(wrapper)
                .mousedown(function () {
                    wasOpen = input.autocomplete("widget").is(":visible");
                })
                .click(function () {
                    input.focus();

                    if (wasOpen) {
                        return;
                    }

                    input.autocomplete("search", "");                   
                });
        },

以上只是处理所需功能的片段.........

4

1 回答 1

0

试试这个作为输入

input = $("<input>")
                .appendTo(wrapper)
                .val(value)
                .attr("title", "")
                .autocomplete({
                    delay: 0,
                    minLength: 0,
                    appendTo: wrapper,
                    source: function (request, response) {
                        var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");

                        response(select.children("option").map(function () {
                            var text = $(this).text();
                            if (this.value && (!request.term || matcher.test(text)))
                                return {
                                    label: text,
                                    value: text,
                                    option: this
                                };
                        }));

                    }})

                .focus(function () {                    
                    $(".ui-combobox").addClass("focus");                    

                    if (wasOpen) {
                        return;
                    }

                    input.autocomplete("search", "");
                })

                .blur(function () {                 
                    $(".ui-combobox").removeClass("focus");
                });
于 2013-03-25T06:58:42.747 回答