我的Rails表单中有以下单选按钮和一个下拉列表。一个单选按钮代表“是”,另一个代表“否”
<input type="radio" value="true" name="staff[optquestion]">
<input type="radio" value="false" name="staff[optquestion]">
<select class="form-control" name="staff[Redesignation]"><option value="">
</option>
我希望当用户单击“是”时,选择下面的下拉列表。 这是我的javascript / jquery:
$(document).ready(function(){
$("[name=staff[optquestion]]").change(function(){
$("[name=staff[[Redesignation]]").toggle($("
[name=staff[optquestion]]").index(this)===1);
});
});
我已将脚本放置在application.js中,但没有任何反应。当我将脚本放在staffs.coffee中时,出现错误“保留字'功能'”
我知道我可以在这里混合js和jquery,但是只是开始。谢谢你的帮助。
答案 0 :(得分:0)
在jQuery中按名称选择元素时必须小心。 要处理单选按钮输入,您应该在这里使用:
$("input:radio[name='staff[optquestion]']")
并且还请记住以更好的控制形式将输入括起来。 所以,
<form>
<input type="radio" value="true" name="staff[optquestion]" checked="checked">
<input type="radio" value="false" name="staff[optquestion]">
<select class="form-control" name="staff[Redesignation]">
<option value="">
</option>
</select>
</form>
JS将是:
$(document).ready(function(){
$("input:radio[name='staff[optquestion]']").change(function(){
$("[name='staff[Redesignation]']").toggle();
});
});
由于这里仅使用两个单选按钮,因此可以使用。如果您有2个以上,则必须使用事件处理程序中的 this 来检查单选按钮的值。