簡體   English   中英

Select2 ajax預選與自定義數據值

[英]Select2 ajax preselection with custom data value

所以我有一個帶有 select2 的多選下拉菜單,我從數據庫中獲取信息。 問題是使用許多值預填充下拉列表適用於文檔中的示例,但我還想包含一個額外的數據字段。 這就是我嘗試填充下拉列表的方式:

var productSelect = $('#product_ids');
    $.ajax({
        type: 'GET',
        url: '/ajaxOrdersData/' + orderID
    }).then(function (datas) {        
        datas.forEach(data => {
            var option = new Option(data.name, data.id, true, true);
            option.dataset.price = data.price;      
            productSelect.append(option).trigger('change');
        });     
        productSelect.trigger({
            type: 'select2:select',
            params: {
                data: datas.map(function (item) {                       
                    return {
                        text: item.nfame,
                        id: item.id,
                        price: item.price,
                    }
                })      
            }
        });
    });

上面的代碼確實創建了一個帶有 data-price 值的選項標簽,但是像下面這樣檢索該值不起作用:

var products = $('#product_ids').select2('data'); 

products 變量沒有價格數據屬性。

單擊 DOM 上的按鈕時,我還有哪些其他方法可以在多選中獲取所有產品的價格數據屬性?

這是我想出的解決方案:

 var products =$('#product_ids option:selected'); 

然后檢索值:

 $.each(products, function(index, value) {            
            actualTotals += Number(value.dataset.price);            
        }); 

另一種解決方案是保留 .select2('data'); 獲取選擇的方式,而是使用 jquery 從結果對象中檢索每個元素屬性:

var products =$('#product_ids').select2('data'); 
$.each(products, function(index, value) {            
                price = value.element.attributes['data-price'].value;         
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM