我知道这个问题已经发布,但是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;
}
});
你能建议我采用另一种方式继续吗?
谢谢你
答案 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();