我有一个带有下拉菜单的Meteor模板,该菜单返回一个字符串,然后在方法中使用。由于我使用下拉列表选择目标值,因此这仅适用于模板的第一个实例 - 之后,其他模板使用第一个模板中的选定值。
如何引用下拉菜单的ID以确保我指向正确的实例? id为build{{this._id}}
,我无法弄清楚在事件处理程序中使用的语法。我试过了:
var selection = $("'#' + 'build' + 'buildId' option:selected).val();
但没有运气。
<template name="Build">
<form>
<select class="form-control build-comps" id="build{{buildId}}">
{{#each comps}}
<option class="comp" value="{{_id}}">{{name}}</option>
<option class="comp" value="{{_id}}">{{name}}</option>
<option class="comp" value="{{_id}}">{{name}}</option>
{{/each}}
</select>
<button type="submit" class="btn btn-info">Add</button>
</form>
</template>
Template.Build.events({
'submit form': function(e) {
e.preventDefault();
var buildId = this._id;
var selection = $(".build-comps option:selected").val();
...
}
});
更新代码:
var selection = $('#build' + buildId + " " + 'option:selected');