JQuery自动完成列表消失

时间:2013-11-14 10:54:35

标签: jquery css autocomplete triggers jquery-autocomplete

当我尝试选择自动完成列表中的一个元素时,整个列表都会消失!一旦我尝试将鼠标移动到下拉列表中,就会发生这种情况。

我的自动填充功能:

enter image description here

包含js/jquery-ui-1.10.3.custom.min.js,与jquery-ui-1.10.3.custom.less相同。

有什么想法吗?

HTML代码:

<div id="region_box" name="region_box">
<input type="text" name="name" placeholder="<%$(language.placeholder.search_box.%b__lang)%>" id="yourCity" size="35" maxlength="50" style="width:340px;" tabindex="1">
<input id="chooseb_auto" class="choose" value="&translate("SEARCHBOX_CHOOSE_BUTTON")" type="submit">
<div class="error_label">

...

JS代码:

// Choose the city button 
var both = 0;
$(".choose").live("click",function(){
    for (var id in regionArray) {
        if( trim(regionArray[id].name[lang]).toUpperCase() == trim($("#yourCity").val()).toUpperCase() ) {
            otherRegionChoosen(id);
            window.LightBox.close();
            return;
        }
    }
..

PS:我在网站上的其他页面上有相同的自动填充功能,但它正在运行,但在目标网页上却没有

1 个答案:

答案 0 :(得分:0)

如果您使用的是最新的jquery版本,则必须非常清楚

.data(“autocomplete”)._ renderItem = function(ul,item){}; 在此行中。

这里我们会犯错误“autocomplete” .....在 JQuery更高版本我们必须

.data(“ui-autocomplete”)._ renderItem = function(ul,item){};

为你我分享一些片段....请找到它,如果你有任何问题请随意我问...快乐编码!!!!!!

我认为你得到了我所说的.......

$( '#ID_YourElement')。自动完成({                 来源:功能(请求,响应){

                var URL = '';

                URL = "yourServiceURL";


                $.ajax({
                    url: URL,
                    dataType: "json",
                    success: function (data2) {
                        response($.map(data2, function (item) {
                            return {
                                label: item.FirstName + ' ' + item.LastName,
                                value: item.FirstName + ' ' + item.LastName,
                                Data: item
                            }
                        }));


                    }
                });
            },
            minLength: 2,
            select: function (event, ui) {

                $(this).attr("Data", JSON.stringify(ui.item.Data));

                uiResult.push(ui.item.Data);


            },
             open: function (event, ui) {
                if ($('.ui-autocomplete').find('li').length > 3) {
                    $('.ui-autocomplete').css('padding-right', '20px').css('width', '340px').css('max-height', '225px').css('overflow-y', 'auto').addClass('dropdown-menu');
                }
                else {
                    $('.ui-autocomplete').css('padding-right', '2px').css('width', '340px').css('max-height', '225px').css('overflow-y', 'auto').addClass('dropdown-menu');
                }
                $(".ui-helper-hidden-accessible").hide();
                $(this).autocomplete('widget').css('z-index', 100000);

                return false;
            }
        }).data("ui-autocomplete")._renderItem = function (ul, item) {

            var html = '';

            html = html + '<a href="javascript:;" tabindex="-1">';

            html = html + '<div style="font-weight: 600;" class="span10">';
            html = html + '<span>' + item.FirstName + ' ' + item.LastName + '</span><br>';
            html = html + '<span>' + item.Email + '</span>';
            html = html + '</div>';

            html = html + '</a>';



            return $("<li></li>").data("item.autocomplete", item).append(html).appendTo(ul);
        };