【问题标题】:How to generate option values into jquery multiselect from js如何从js生成选项值到jquery multiselect
【发布时间】:2015-04-23 02:40:42
【问题描述】:

我试图使用 javascript 在我的 jquery 多选中动态生成选项值。

function prova(data){
      var t = 0;
      var tmp = new Array();
      var keys = new Array();
      $("#select-1").multiselect({
      multiple: true,
      header: true,
      noneSelectedText: "Select an Option",
      selectedList: 1
    });
    var stringa ="";
    $.each(data, function(key,value){
    stringa +="<option value=\""+key+"\">"+key+"</option>";
    if(t==0){
    tmp[0] = key;
    }
    t++;
    });
    $("#select-1").html(stringa);
}

我在#select-1 中生成的值是这样的:

<select id="select-1" size="5" name="example-basic" title="Basic example" style="display: none;">
<option value="name1">name1</option>
<option value="name2">name2</option>
<option value="name3">name3</option>
<option value="name4">name4</option>
<option value="name5">name5</option>
</select>

问题是它没有将选项值填充到 jquery 多选中,它仍然是空的。

【问题讨论】:

  • 在您展示#select-1 的示例中,我看到了每个option 元素的valueinnerHTML。您是要显示没有valueoption 元素吗?为了清楚起见,您可能需要修改您的问题以表明这一点,因为据我们所知,它正在正常工作。

标签: javascript jquery jquery-multiselect


【解决方案1】:

因为您是在元素上直接使用 .html() ,所以在插入新元素之前要替换其中的元素。 您可能想使用 .append() 之类的:

$.each(data, function(key,value){
    stringa +="<option value=\""+key+"\">"+key+"</option>";
    if(t==0){
    tmp[0] = key;
    }
    t++;
    });
    $("#select-1").append(stringa);

或者在 .html() 用法中也使用之前的值,例如:

 $.each(data, function(key,value){
    stringa +="<option value=\""+key+"\">"+key+"</option>";
    if(t==0){
    tmp[0] = key;
    }
    t++;
    });
    $("#select-1").html($("#select-1").html()+stringa);

【讨论】:

    猜你喜欢
    • 2012-02-03
    • 2013-06-08
    • 2011-09-21
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多