2013-01-13 70 views
0

我正在使用jQuery UI自動完成。 我想要輸入框中的字符串文本時,值非常長。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); 
} 

但選擇事件不會爲我工作。

+0

我添加更多的代碼 – golsear

+0

請添加HTML片段也 – doniyor

+0

你shouldnot添加更多的邏輯到您選擇的事件函數? ''如果(availableTags [0]。長度> 25){取availableTags [1]}'' – doniyor

回答

0

我找到了一個解決問題的辦法

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'); 

     },