bsmselect在页面加载期间预选项目,无法控制订单

时间:2014-10-02 23:48:39

标签: javascript jquery html web2py

我正在使用bsmselect(https://github.com/vicb/bsmSelect)并在页面加载时预先选择以下javascript来预选项目。我正在使用web2py并且{{= fill_messages_saved}}返回一个数组[4,144,142,143],它们都对应于我想要选择的选项的值。不幸的是,订单总是按照我的html部分生成的顺序显示。有没有办法在页面加载时根据值{{= fill_messages_saved}}的数组加载每个项目作为预选选项?我可以使用下面的alert()单独加载每个项目,但是它们不会自上而下加载..它们保留了html中指定的顺序。当我手动选择选项时,它们会正确显示。

jQuery(document).ready(function(){
  jQuery(function($) {
  $("#fill_messages").bsmSelect({
    animate: true,
    highlight: true,
    plugins: [$.bsmSelect.plugins.sortable(), $.bsmSelect.plugins.compatibility()]
  });
});
$(window).load(function(){
  $.each({{=fill_messages_saved}}.toString().split(","), function(i,e){
    alert()
    $("#fill_messages option[value='" + e + "']").prop('selected', true).trigger('change');
  });
});

1 个答案:

答案 0 :(得分:0)

这是一个没有服务器端信息和html的repro案例。我希望能按照这个顺序[4,3,2,1]预先填充“Chicken”,“Sheep”,“Cow”和“Pig”这个列表,但它显示出“Pig” ,“牛”,“羊”,“鸡”[1,2,3,4]。

jQuery(document).ready(function(){
   jQuery(function($) {
   $("#fill_messages").bsmSelect({
        animate: true,
        highlight: true,
        plugins: [$.bsmSelect.plugins.sortable(), $.bsmSelect.plugins.compatibility()]
      });
});
$(window).load(function(){
$.each([4,3,2,1].toString().split(","), function(i,e){
        alert()
        $("#fill_messages option[value='" + e + "']").prop('selected', true).trigger('change');
    });
});

<select name="fill_messages" id="fill_messages" multiple="multiple" title="Select a fill message">
  <option value=1>"Pig"</option>
  <option value=2>"Cow"</option>
  <option value=3>"Sheep"</option>
  <option value=4>"Chicken"</option>
</select>