[英]Adding new value and selecting clears previous selections - Select2 multiple
經過一番有趣的游戲之后,我終於找到了如何動態地(按一下按鈕)向頁面加載時從MVC模型填充的多個Select2選擇控件中添加和選擇新值的方法...
<select id="topicMaintMultiSelect" multiple="multiple" name="SelectedMaintTopic" tabindex="18" required="required">
@foreach (var topic in Model.SystemTopics.AvailableTopics)
{
<option value=@topic.Value selected=@topic.Selected>@topic.Text</option>
}
</select>
...和...
function addTopic() {
var newTopic = $("#NewTopic").val();
var select = document.getElementById("topicMaintMultiSelect");
var opt = new Option(newTopic, newTopic);
select.options[select.options.length] = opt;
opt.setAttribute("selected", "selected");
$("#topicMaintMultiSelect").val(newTopic).trigger("change");
$("#NewTopic").val("");
}
...但是我無法解決如何阻止它清除先前選擇的值。
我嘗試了各種建議的解決方案,其中大多數是基於將值推入select2數據的,但是這些似乎都不起作用,雖然不確定為什么。
請提出想法/建議。
刪除對.val(newTopic)
的調用。 那就是清除先前選擇的值。
添加標記為已選擇的選項並觸發更改事件就足以更改該值。
var newTopic = $('#NewTopic').val();
var $option = $('<option></option>').val(newTopic).text(newTopic).prop('selected', true);
$('#topicMaintMultiSelect').append($option).change();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.