如何在JQuery UI Multiselect中添加或刪除選項?我正在初始化頁面加載時的多重選擇,我需要刪除現有值並根據其他選擇添加新值。我使用的初始化頁面加載多選:jquery multiselect重新加載
$("#multipleselectboxId").multiselect();
在那之後,我沒有得到反映增加值到多個下拉使用jQuery append()
和remove()
方法,它們與原來的下拉,但在多選工作正常。
任何人都可以幫忙嗎?
如何在JQuery UI Multiselect中添加或刪除選項?我正在初始化頁面加載時的多重選擇,我需要刪除現有值並根據其他選擇添加新值。我使用的初始化頁面加載多選:jquery multiselect重新加載
$("#multipleselectboxId").multiselect();
在那之後,我沒有得到反映增加值到多個下拉使用jQuery append()
和remove()
方法,它們與原來的下拉,但在多選工作正常。
任何人都可以幫忙嗎?
我發現這個解決方案,第一摧毀multiselect並重新初始化它,感謝@ Brandon Joyce,
解決方案是
$("#multipleselectboxId").append(toAppend);
$("#multipleselectboxId").remove(toRemove);
$("#multipleselectboxId").multiselect('destroy');
$("#multipleselectboxId").multiselect();
對於一個你可以只破壞和改變後重新初始化...
$("#multipleselectboxId").append(toAppend).multiselect("destroy").multiselect();
還有另一個插件具有刷新功能:EricHynds's Multiselect
$("#multipleselectboxId").append(toAppend).multiselect("refresh");
沒有。我試過了,它不工作,你提到的插件和我使用的插件不一樣,我從這個鏈接中使用http://quasipartikel.at/multiselect_original/ – 2011-12-28 08:22:12
啊,好吧,如果一切都失敗了,你能不能銷燬它並重新初始化?它看起來像使用了widget工廠,所以這應該是可能的。 – 2011-12-28 08:49:40
你可以根據我的下面的答案更新你的答案,以標記爲已接受的答案 – 2011-12-28 09:00:07
以及這個插件工作正常,但我有一個與銷燬和過濾器的PB:我的組合數據加載了AJAX。所以,當我刷新與Ajax調用的數據,我所說銷燬刷新插件:
myCombo.multiselect('destroy');
myCombo.multiselect().multiselectfilter();
它適用於第一個電話:空連擊,AJAX調用加載數據,可撥打以上功能。 但是,如果我刷新組合數據並再次調用上述功能,過濾器消失了? 有人經歷過這個pb並找到解決方案嗎?
我用它這樣:
$("#<%= cmbInBayiID.ClientID %>").multiselect().trigger('reset');
它的工作。
使用scriplets是不好的,你應該感覺不好。 – 2012-09-24 08:12:45
我試圖重建.multiselect("destroy")
和.multiselect()
多選,但它沒有工作,所以最後我覺得這個解決方案爲我工作。
$.each(jsonArray, function(i, val) {
$('#frmarticles-f_category_id').append('<option value="'+i+'">'+val+'</option>').multiselect('rebuild');
});
謝謝你的幫助。我用的是多選UI部件,這是什麼工作
jQuery("select[title='" + FieldNameTitleText + "']").append("<option value='" + OptionValue+ "'>" + OptionText + "</option>").multiselect("refresh");
「append()」使用「刷新」工作正常後鏈接與否。謝謝。 – caglaror 2016-03-04 11:28:46
就我而言,我只是想取代多選的新所有以前的內容。
這爲我工作:
$('#multiselect_id').html(newHtml);
$('#multiselect_id').multiselect('refresh');
這裏是我做過什麼:;它可能超過必要,但它對我有用。
原「中選擇」代碼,需要修改:
<select id="MySelect" name="selection">
<option value="1">One</option>
<option value="2">Two</option>
</select>
我重建的選項列表在PHP中,它通過JSON發送到JavaScript和建造/存儲在一個變量的新名單。例如:
// this is similar to if we got it from PHP
var newList = '<option value="A">Alpha</option>
<option value="B">Beta</option>
<option value="C">Gamma</option>';
現在,在jQuery UI的多選小部件周圍切換這樣的:
$('#MySelect').html(''); // clear out old list
$('#MySelect').multiselect('destroy'); // tell widget to clear itself
$('#MySelect').html(newList); // add in the new list
$('#MySelect').multiselect(); // re-initialize the widget
特別是,我帶參數的重新初始化它,如:
$('#MySelect').multiselect({selectedList: 4, header: false});
如果任何人都讀過這麼多,仍然有麻煩,試試這個。
var i = jQuery('input');
i.data('multipleSelect').$parent.remove();
i.removeData('multipleSelect');
i.show();
function setMultiSelect(idElement, paramVal){
eval("$('#"+idElement+"').multiselect('uncheckAll')");
$.each($('input[name="multiselect_'+idElement+'"]'), function(k,i) {
if(paramVal.indexOf(this.value)!=-1){
this.checked = true;
}
});
eval("$('#"+idElement+"').multiselect('update')");
}
你能解釋一下這是什麼嗎? – Vemonus 2017-01-25 18:15:15
var valArr = ["1", "2"],
i = 0,
size = valArr.length,
$options = $('#MySelect option');
for (i; i < size; i++) {
$options.filter('[value="' + valArr[i] + '"]').prop('selected', true);
}
$('#MySelect').multiselect('reload');
1.valArr是
2.對於環選擇選項的值來設置選擇爲基於valArr
3。我們的變化是匹配的選項只在隱藏選擇元素
4.to改變多選生成的元素,我們需要重新加載
5.every插件可能有不同的名稱重新加載,例如:更新,刷新
不要只是將代碼發佈爲aswer。解釋一下。 – 2017-07-11 13:23:36
這個答案讓我感到困惑。你能解釋你的解決方案的前兩行以及它們與重新加載的關係嗎? – IcedDante 2015-01-29 17:06:57
對不起,你確定你不應該接受@Brandon Joyce答案作爲第一個提供真實答案嗎?! – 2016-08-01 06:12:27
正是我在找的東西!在初始化multiselect之前使用'destroy'來解決我的問題!謝謝! – AxleWack 2017-05-26 11:32:03