【发布时间】:2016-03-28 20:52:34
【问题描述】:
我在一个表单中有两个不同的select 元素
当我在第一个列表中选择一个选项时,我希望在第二个列表中自动设置相应的选项。我做了一些尝试,使用reactive-var 接近它的工作,但我需要一些帮助。
我的模板是这样的
<template name="inputForm">
<div class="section">
<form action="#">
<div class="row">
<div class="input-field col m4">
<select id="list-one">
<option value="" disabled selected>Choose your option</option>
<option value="1">100</option>
<option value="2">75</option>
<option value="3">50</option>
<option value="4">25</option>
<option value="5">25</option>
</select>
<label>Select List 1</label>
</div>
{{{secondListVar}}}
</div>
</form>
</div>
</template>
然后在我的模板帮助文件中
var secondListVar = new ReactiveVar("<div class='input-field col m4'><select id='list-two'><option value='' selected>Choose your option</option></select><label>Select List 2</label></div>");
Template.inputForm.helpers({
secondListVar: function() {
return secondListVar.get();
}
});
Template.inputForm.events({
'change #list-one' : function() {
var listOneChoice = $('#list-one option:selected').text();
switch (listOneChoice) {
case "100":
secondListVar.set("<div class='input-field col m4'><select id='list-two'><option value='' selected>1.5</option></select><label>Select List 2</label></div>");
break;
case "75":
break;
case "50":
break;
case "25":
break;
case "25":
break;
}
}
});
如果我从第一个列表中选择一个选项,第二个列表似乎会被清除
但是如果我单击导致模板被隐藏/显示的单选按钮,我会得到这个
所以我有两个问题
- 渲染似乎不是动态的,因为我需要手动强制它
- 当我得到显示的第二个列表选项时,第一个列表的相应状态丢失了
【问题讨论】:
-
从您的
secondListVar中删除您的 html 标记,将其放入您的模板中 -
仍然不会改变结果
标签: javascript jquery html meteor