2

Select2 插件没有显示带有 templateFormat 选项的选定选项有人知道如何修复它吗?

标记:

<select id="plans" style="width: 75%">
<option value="1" name="text1" price="$1" saving="text" selected="selected"></option>
<option value="2" name="text2" price="$2" saving="text" selected="selected"></option>

js:

$(document).ready(function() { 
 $('select#plans').select2({
   minimumResultsForSearch: Infinity,
   templateResult: formatState
});
});
function formatState(state) {
if (!state.id) return state.text;
var html = '<span class="name">' + state.element.attributes.name.value + "</span>"
html += '<span class="price">' + state.element.attributes.price.value + </span>"
html += '<span class="saving">' + state.element.attributes.saving.value + "</span>"
var $state = $(html);
return $state
}

这是上面代码的一个小提琴

谢谢

4

2 回答 2

2

我想到了。进行了以下更改,它开始工作。我添加了模板选择。

 $(document).ready(function(){
 $('select#plans').select2(
        {minimumResultsForSearch: Infinity,
            templateResult: formatState,
        templateSelection:formatState
    });     
  });
于 2016-01-20T18:42:03.590 回答
0

解决这个问题的一个非常简单的方法是:

// Step1: Here assuming id of your selectbox is my_id, so this will add selected attribute to 1st option 
$('#my_id option').eq(0).prop('selected',true);


// Step2: Now reinitialize your select box

// This will work, if you haven't initialized 
 selectbox $('#my_id').select2();

or

//This will work, if you have initialized selectbox earlier, so destroy it 
  first and initialise it 
 $('#my_id').select2('destroy').select2();
于 2018-02-13T06:39:45.967 回答