我当前有一个表单,其中包含具有以下代码的表单组。
<div class="form-group">
<label>Role</label>
<div class="radio">
<label>
<input type="radio" name="role-options" id="role-foreman" value="Foreman" checked="">Foreman
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="role-options" id="role-super" value="Superintendent">Superintendent
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="role-options" id="role-admin" value="Superintendent">Admin
</label>
</div>
</div>
这一切都按预期工作,但是一旦我将事件处理程序添加到三个输入,我就会失去表单组的默认功能,即当按下一个单选按钮时,它会成为唯一选定的一个。
目前,我的模板事件处理程序中有以下代码。
"click #role-foreman": (e) ->
console.log e
showAddProjects = true
"click #role-super": (e) ->
console.log e
showAddProjects = false
"click #role-admin": (e) ->
console.log e
showAddProjects = false
我正在寻找的是保留按钮的默认行为,但然后在按下按钮时运行其他代码。
最佳答案
CoffeeScript 具有隐式返回,因此您的事件处理程序会编译为 JavaScript,如下所示:
"click #role-super": function(e) {
var showAddProjects;
console.log(e);
return showAddProjects = false;
}
因此您的事件处理程序返回false
。当这种情况发生时,它 stops the event from propagating and prevents the default behavior 。要解决此问题,只需在函数末尾添加一个 return
即可,如下所示:
'click #role-super': (e) ->
console.log e
showAddProjects = false
return
关于javascript - Meteor,向单选按钮添加事件会禁用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27696672/