如何在JS中获得多项选择

时间:2015-04-18 12:52:22

标签: javascript meteor html-select

我知道这个问题已经发布,但是this topic

没帮我。我尝试了两个第一个解决方案,没有一个工作。

第一个:我收到一个关于未定义选项的错误(无论我怎么处理它) 第二种:因为我正在研究meteor,“this.val()”不是一个值,因为这并不是指好的对象。

编辑:这是我的代码

HTML:

<select class="selectpicker show-tick" id="update-languages-1" data-selected-text-format="values">
  {{#each isoLangs 1}}
    {{#if selected}}
  <option disabled selected>{{name}}</option>
    {{else}}
  <option>{{name}}</option>
    {{/if}}
  {{/each}}
</select>

JS:

var learningLanguages = [],
    options = select && select.options,
    iLen = options.length;

for (var i = 0, ; i < iLen; i++)
  if (options[i].selected)
    learningLanguages.push(options[i].text);

正如我所说,我也尝试过使用JQuery:

Template.profile.events({
  'submit form': function(event, tmpl){
    [...]
    var learningLanguages = [];
    $('#update-languages-1 :selected').each(function(){
      learningLanguages.push($(this).val()); 
    });
    return false;
  }
});

你能建议我采用另一种方式继续吗?

谢谢你

1 个答案:

答案 0 :(得分:-1)

选择选项元素需要值=&#34;&#34; attibute:

<select multiple class="selectpicker show-tick" id="update-languages-1" data-selected-text-format="values">
  {{#each isoLangs 1}}
    {{#if selected}}
  <option value="{{name}}" disabled selected>{{name}}</option>
    {{else}}
  <option value="{{name}}">{{name}}</option>
    {{/if}}
  {{/each}}
</select>

如果您想要选择多个选项(不仅仅是一个),您应该将 multiple 属性添加到选择中。

您可以简单地使用select中的.val()将选定的选项值作为数组(如果是多个选择)或选定的选项值(如果它不是多个选择):

var learningLanguages = $('#update-languages-1').val();