0

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

我的自动完成:

在此处输入图像描述

包括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:我在网站上的其他页面有相同的自动完成功能并且它正在工作,但在登录页面上它没有

4

1 回答 1

0

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

.data("自动完成")._renderItem = function (ul, item) { }; 在这一行。

在这里我们会犯的错误是“自动完成” .....在JQuery 更高版本中,我们必须

给喜欢.data("ui-autocomplete")._renderItem = function (ul, item) {};

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

我想你明白我在说什么......

$('#ID_YourElement').autocomplete({ source: function (request, response) {

                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);
        };
于 2013-11-14T11:22:45.750 回答