第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

更改 select2 ajax 標(biāo)記中的選項(xiàng)數(shù)據(jù)值

更改 select2 ajax 標(biāo)記中的選項(xiàng)數(shù)據(jù)值

達(dá)令說 2022-06-16 17:16:19
我有使用 ajax 的 select2 標(biāo)簽方法的代碼:json數(shù)據(jù):[    {        "id": "5",        "text": "laravel3"    },    {        "id": "4",        "text": "laravel2"    }]代碼:$(document).ready(function(){    $('#tag_list').select2({        placeholder: "Choose tags...",        tags: true,        minimumInputLength: 3,        tokenSeparators: [",", " "],        createSearchChoice: function(term, data) {            if ($(data).filter(function() {                return this.text.localeCompare(term) === 0;            }).length === 0) {                return {                    id: term,                    text: term                };            }        },        ajax: {            url: '/tags/find',            dataType: 'json',            data: function (params) {                return {                    q: $.trim(params.term)                };            },            processResults: function (data) {                return {                    results: data                };            },            delay: 250,            cache: true        }    });});使用我的代碼,我可以從數(shù)據(jù)庫中搜索和選擇數(shù)據(jù),或者將新標(biāo)簽添加到我的 select2 區(qū)域?,F(xiàn)在,當(dāng)我從數(shù)據(jù)庫中選擇數(shù)據(jù)時,<option value="">是數(shù)據(jù),id但是當(dāng)我添加新標(biāo)簽時<option value="">是name(文本),如下所示:現(xiàn)在我需要將選項(xiàng)value(獲取數(shù)據(jù)庫數(shù)據(jù))從數(shù)據(jù)id更改為數(shù)據(jù)name(文本)。如何將選項(xiàng)數(shù)據(jù)值從 id 更改為 name?!
查看完整描述

2 回答

?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個贊

更新:我添加了更多背景和對文檔的引用,并將 JSFiddle 切換為$.map()像文檔一樣使用。


Select2 數(shù)據(jù)格式在文檔中進(jìn)行了描述:


Select2 需要一種非常具體的數(shù)據(jù)格式 [...] Select2 要求每個對象都包含一個id和一個text屬性。[...] Select2value從id數(shù)據(jù)對象的屬性生成屬性...


文檔還描述了如何使用您以外的其他東西id:


id如果您使用(like )以外的屬性pk來唯一標(biāo)識選項(xiàng),則需要先將舊屬性映射到,id然后再將其傳遞給 Select2。如果您無法在服務(wù)器上執(zhí)行此操作,或者您處于無法更改 API 的情況,您可以在將其傳遞給 Select2 之前在 JavaScript 中執(zhí)行此操作


在您的情況下,這意味著轉(zhuǎn)換data您從 AJAX 調(diào)用返回的結(jié)果,以便id每個結(jié)果的元素實(shí)際上是text值。


您可以使用 AJAX 選項(xiàng)來做到這processResults()一點(diǎn)。使用$.map文檔來做到這一點(diǎn):


processResults: function (data) {

    return {

        // Transform data, use text as id

        results: $.map(data, function (obj) {

            obj.id = obj.text;

            return obj;

        })

    };

}

這是一個有效的 JSFiddle。請注意,我已將其設(shè)置為使用 JSFiddle 的/echo/jsonasync 選項(xiàng)模擬您的真實(shí) AJAX 請求。


這是生成的源代碼的屏幕截圖,顯示了value添加的標(biāo)簽和通過 AJAX 檢索到的標(biāo)簽的名稱 ( text):

http://img1.sycdn.imooc.com//62aaf50e0001fa6f05960079.jpg

查看完整回答
反對 回復(fù) 2022-06-16
?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個贊

嘗試這個:


ajax: {

    url: '/tags/find',

    dataType: 'json',

    data: function (params) {

        return {

            q: $.trim(params.term)

        };

    },

    //updated 

    processResults: function (data) {

        var newData = [];

        $.each(data, function (index, item) {

            newData.push({                        

                    id: item.id, //id part present in data                        

                    text: item.text //string to be displayed

            });

        });

        return { results: newData };

    },

    //

    delay: 250,

    cache: true

}


查看完整回答
反對 回復(fù) 2022-06-16
  • 2 回答
  • 0 關(guān)注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號