Jquery多选插件,在表单提交后维护排序

时间:2015-02-25 16:53:07

标签: jquery plugins

我搜索了很多,但是我无法找到一个多选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);




});

这是我在选择的插件中尝试维护订单的代码。如您所见,我使用了选择的插件及其附加选择顺序。我检索了订单,但我无法设置订单。

1 个答案:

答案 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');
});