单击单选按钮时如何激活下拉列表

时间:2018-06-23 07:44:48

标签: javascript jquery ruby-on-rails

我的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,但是只是开始。谢谢你的帮助。

1 个答案:

答案 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 来检查单选按钮的值。

相关问题