我搜索了很多,但是我无法找到一个多选jquery插件,它在表单提交后维护选择顺序。
例如,动态填充的选择框中有10个城市。如果我选择,波士顿然后洛杉矶,并提交表格,它应该保持该顺序。但我所看到的是,在提交之后,它维护了它们在DOM中加载的顺序。我尝试过选择和其他插件,但我仍然无法达到预期的效果。
jQuery(document).ready(function($){ $( “选择选。”)选择();
var MY_SELECT = $($(".chosen-select").get(0));
$('#s1-get-order').click(function()
{
var selection = MY_SELECT.getSelectionOrder();
$("#s1-input-order").val(selection);
$('#s1-order-list').empty();
$(selection).each(function(i)
{
$('#s1-order-list').append("<li>"+selection[i]+"</li>");
});
});
$('#s1-set-order').click(function()
{
MY_SELECT.setSelectionOrder($('#s1-input-order').val().split(','), true);
});
// Object-oriented flavor, example for jQuery plugin
var selection = $('.chosen-select').getSelectionOrder();
//alert(selection);
var order = selection;
//alert(order);
$('.chosen-select').setSelectionOrder(order, true);
});
这是我在选择的插件中尝试维护订单的代码。如您所见,我使用了选择的插件及其附加选择顺序。我检索了订单,但我无法设置订单。
答案 0 :(得分:0)
也许这会有所帮助:
$(function() {
$('select[multiple].chosen').chosen();
function getVal(str) {
var selVal = $($('select[name='+str+']').get(0));
return selVal.getSelectionOrder();
}
function setVal(str) {
var selVal = $($('select[name='+str+']').get(0));
selVal.setSelectionOrder($('#btnWriteList').val().split(','), true);
}
function listVal(str) {
var ar1 = getVal(str);
$('#btnReadList').empty();
$(ar1).each(function(i) {
$('#btnReadList').append("<li>"+ar1[i]+"</li>");
});
}
//############ Read ######################
$('#btnRead').click(function() {
listVal('sel2');
});
//############ Write ####################
$('#btnWrite').click(function() {
setVal('sel2');
});