2013-06-25 5 views
0

Я посылаю имена, присоединяя его UUID, как этотОбрезка строки отображаются в autoCompletefb

hari_8053dd70-da5a-11e2-90a9-8d5bc608c78f 

Я отображаются это в autoCompletefb. когда в выпадающем списке выбрано значение, я разбиваю строку на «_» и беру uuid. но моя проблема в том, что вся строка отображается в выпадающем списке. Как я могу отображать только имя в раскрывающемся списке, но можно ли взять целую строку при выборе? Пожалуйста, помогите

Мой код

jQuery.fn.autoCompletefb = function(options) 
{ 
    var tmp = this; 
    var settings = 
    { 
     ul   : '', 
     urlLookup : [""], 
     acOptions : {}, 
     foundClass : ".acfb-data", 
     inputClass : ".acfb-input" 

    } 
    if(options) jQuery.extend(settings, options); 

    var acfb = 
    { 
     params : settings, 
     getData : function() 
     { 
      var result = ''; 
      $(settings.foundClass,tmp).each(function(i) 
      { 
       if (i>0)result+=','; 
       result += $('span',this).html(); 
      }); 
      return result; 
     }, 
     clearData : function() 
     { 
      $(settings.foundClass,tmp).remove(); 
      $(settings.inputClass,tmp).focus(); 
      return tmp.acfb; 
     }, 
     removeFind : function(o){ 
      $(o).unbind('click').parent().remove(); 
      $(settings.inputClass,tmp).focus(); 
      return tmp.acfb; 
     } 
    } 

    $(settings.foundClass+" img.p").click(function(){ 
     acfb.removeFind(this); 
    }); 

    $(settings.inputClass,tmp).autocomplete(settings.urlLookup,settings.acOptions); 
    i = 0; 
    $(settings.inputClass,tmp).result(function(e,d,f){ 
     var f = settings.foundClass.replace(/\./,''); 
     var img_path = $('#hiddenurl').val() +'images/'; 
     var split_array = d[0].split('_'); 
     var v = '<li class="'+f+'"><span> <input type="hidden" name="symptoms[]" value="'+split_array[1]+'">'+split_array[0]+'</span> <img class="p" src="'+img_path+'delete.gif"/></li>'; 
     var x = $(settings.inputClass,tmp).before(v); 
     $('.p',x[0].previousSibling).click(function(){ 
      acfb.removeFind(this); 
     }); 
     $(settings.inputClass,tmp).val('').focus(); 

    }); 
    $(settings.inputClass,tmp).focus(); 
    return acfb; 
} 




$(document).ready(function() { 


       var acfb = $("ul.first").autoCompletefb({urlLookup:$('#hiddenurl').val() + 'index.php/Autocomplete/'}); 



       $("#show_value1").click(function(){alert(acfb.getData());}); 
       $("#clear_value1").click(function(){acfb.clearData();  }); 

       function acfbuild(cls,url){ 
        var ix = $("input"+cls); 
        ix.addClass('acfb-input').wrap('<ul class="'+cls.replace(/\./,'')+' acfb-holder"></ul>'); 

        return $("ul"+cls).autoCompletefb({urlLookup:$('#hiddenurl').val() + 'index.php/Autocomplete/'}); 
       } 


      }); 

ответ

1

Согласно моему пониманию, вы можете попытаться уменьшить «ширину списка опций», это скрывает оставшиеся символы.

У меня есть пример, наиболее вероятный для вас (используя chosen.js), проверьте это в JSFiddle и поделитесь своим мнением.