weixin_33721344 2015-12-15 08:35 采纳率: 0%
浏览 16

select2JS Ajax选项值

I'm developing a form with select2JS.

In my first step I use a simple Select2

$(this).select2();

But I want to change it for an Ajax version.

 $(this).select2({
    multiple:multival,
    ajax:
    {
        url: '/api/v2/vocabulary/'+vocabulary+'/words/list',
        headers: {'X-AUTHORIZATION-TOKEN': token},
        dataType: 'json',
        type: "POST",
        quietMillis: 100,
        data: function (params) { // Lors d'une recherche
            return {
                pattern: params.term, // search term
                page: params.page
            };
        },
        processResults: function (data, params) {
            // parse the results into the format expected by Select2
            // since we are using custom formatting functions we do not need to
            // alter the remote JSON data, except to indicate that infinite
            // scrolling can be used
            params.page = params.page || 1;

            return {
                results: data.words,
                pagination: {
                    more: (params.page * 15) < data.total
                }
            };
        },
        initSelection : function (element, callback) {
            var data = [];
            $(element.val()).each(function () {
                data.push({id: this, text: this});
            });
            callback(data);
        },
        cache: true
    },
    escapeMarkup: function (markup) {return markup; }, // let our custom formatter work
    minimumInputLength: 0,
    templateResult: function formatRepo (repo)
    {
        return repo.name;
    },
    templateSelection: function formatRepoSelection (repo)
    {
        return repo.name;
    }
});

In the first version, my Ajax return the name of the Option ( When I send the form). In the Ajax version, the script create a new Option inside the select ( But not visible ) and when I send the form its an Id who is sent. Because in the Value of the new Option, its the Id and not the name.

I use Select2 4.0.1 and I find in the 3162' Line :

if (data.id) {
  option.value = data.id;
}

I tried to change data.id by data.name, but it was not effective.

Do you have an idea?

  • 写回答

0条回答 默认 最新

    报告相同问题?