0

このようにuuidを追加して名前を送信しています

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


            });
4

1 に答える 1

1

私の理解によると、「オプションリストの幅」を減らすことができます。これにより、残りの文字が非表示になります。

私はあなたに最も可能性の高い例を持っています( を使用chosen.js)。これをJSFiddleで確認し、意見を共有してください。

于 2013-06-25T08:22:19.227 に答える