1

我正在使用 jQuery UI 自动完成。当值很长时,我想要输入框中的子字符串文本。

例如

var availableTags = [ "value long long long long", "value" ];

$( ".chooseGiftWrapper input#tags" ).autocomplete({
    source: availableTags,
    minLength: 0,
    open: function(event, ui) {
        $('.ui-menu').width(200).css({'position':'static','top': '0'});
        $('#chooseGiftWrapperHead .listFriends').show().addClass('open');
        nameFriendPosition();
         $('.listFriendsWrapper.scroll').jScrollPane({autoReinitialise: true});
    },
    select: function(event, ui) {

        $('#chooseGiftWrapperHead .chooseGiftcloseBtn').addClass('active');
        $('.dropDownBlock.listFriends').hide().removeClass('open');

    },
    focus: function(event, ui) {
        var default_value = $(this).attr('default_value');
        if ($(this).val() == default_value) {
            $(this).val('');
            $(this).removeClass('set_default');
            $('#chooseGiftWrapperHead .chooseGiftcloseBtn').removeClass('active');
        } 


    },
    change: function(event, ui) {

    }
})
.data("autocomplete")._renderItem = function (ul, item) {
    return $("<li />")
        .data("item.autocomplete", item)
        .append("<a><img src='img/testAvatar.png'><p class='nameFriend'>" + item.label + "</p></a>")                                
        .appendTo(ul);
}

但是选择事件对我不起作用。

4

1 回答 1

1

我找到了解决问题的方法

select: function(event, ui) {
            name = ui.item.value;
            lengthName = name.length;
            substrName = '';
            if( lengthName > 23){
                ui.item.value = name.substr(0,23) + '...';
            } else {
                ui.item.value = name;
            }
            $(this).val(ui.item.value);


            $('#chooseGiftWrapperHead .chooseGiftcloseBtn').addClass('active');
            $('.dropDownBlock.listFriends').hide().removeClass('open');

        },
于 2013-01-13T15:43:30.143 回答