【发布时间】:2013-12-29 19:44:28
【问题描述】:
我在选中复选框以重新呈现模式对话框时遇到问题。
我正在尝试显示(或启用,我都尝试过)一些输入字段,具体取决于选中的某些复选框。
HTML 代码如下(禁用和完全删除选项)
<div class="form-group">
<label for="joinTradeCat" class="col-sm-2 control-label">Trade Category</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="joinTradeCat" placeholder = "Required" {{#unless joinTradie}} disabled="disabled" {{/unless}}>
</div> {{#if joinStudent}}
<div class="form-group">
<label for="joinCourse" class="col-sm-2 control-label">Course</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="joinCourse" placeholder = "Required">
</div>
</div>
{{/if}}
</div>
模板功能如下
Template.joinLayoutInner.events({
'click #joinTradieCheck': function(e) {
//e.preventDefault();
console.log("checkbox clicked");
var checked = joinTradieCheck.checked?true:false;
Session.set("joinTradieTag", checked);
}
});
Template.joinLayoutInner.helper({
joinTradie: function() {
return Session.get("joinTradieTag");
}
});
当我切换 joinTradieCheck 复选框时,会话变量会愉快地更改,但布局不会更改(启用编辑或在#if 中显示编辑)。
我这样做的方式是否正确?是因为我在模态男孩 div 中吗?
【问题讨论】:
-
您是否忘记发布
joinStudent助手或您错过了它?也不应该只是disabled而不是disabled="disabled"来禁用输入吗? -
我没有添加 joinStudent 助手,它和 joinTradie 一样。 HTML 可以被简化,但这不是问题,缺乏反应性才是。
-
在这种情况下,我会说你的代码是正确的,在模态体 div 中不会是问题。 SSCCE 仍然会很好,并且可能会帮助您调试它。我会首先检查
joinTradie或joinStudent助手是否被执行。如果不尝试将助手直接添加到模板中(不在助手字典中)。既然我这么说,会不会是一个简单的错字:你错过了s,Template.joinLayoutInner.helper应该是Template.joinLayoutInner.helpers? -
SSCCE?但是,您在 Toboid 上的位置。错过了's'。谢谢你
-
很高兴我能帮上忙,我会添加这个作为答案,这样问题就解决了。 SSCCE = 简短、独立、正确、示例 (sscce.org)。我要求的是 SSCCE,因为您发布的代码不完整。
标签: javascript html twitter-bootstrap meteor