未选中时jQuery单选按钮更改

问题描述:

我试图用Rails切换单选按钮& jQuery。非常适用于复选框,但不适用于单选按钮。未选中时jQuery单选按钮更改

基本上不刷新,如果计费是选中

<%= f.radio_button :billable, 'true', :checked => true, :id => 'billable' %> This is a Billable Project <br /> 
<%= f.radio_button :billable, 'false' %> This is an Internal Project 

<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function(){ 
    $("#billable").change(function() { 
     $("#billing").toggle(); 
    }); 
    }); 
</script> 
+0

你可以发布这两个按钮生成的html代码吗? – timaschew

+0

切换是正确的功能 – AlienWebguy

+0

@timaschew 这是一个可结算项目
这是一个内部项目 – Gaelle

试试这个

$(document).ready(function(){ 
    $("#billable").click(function() { 
     $("#billing").toggle(this.checked); 
    }); 
    }); 
+0

为什么要投票? – ShankarSangoli

+0

您的代码将无法使用。它会一直显示'#billing',但永远不会隐藏它。你在'#billable'单选按钮上有一个点击监听器。每当你点击一个单选按钮时,你总是'检查'它,所以'this.checked'将总是评估为真。 – AlienWebguy

+0

好,但如何取消#billable如何隐藏#billing? – Gaelle

这是你想要的。

$(document).ready(function(){ 
    $("input[name=billable]").change(function() { 
     $("#billing").toggle(); 
    }); 
    }); 

http://jsfiddle.net/AlienWebguy/KJ9kE/

+0

我试过你的代码,但没有工作。这是生成的。我尝试通过输入[name = project [billable]] 这是一个可结算项目
这是一个内部项目 – Gaelle

+0

只需将引号添加到您的选择器:'$(“input [name ='project [billable]']”)' - http://jsfiddle.net/AlienWebguy/KJ9kE/6/ – AlienWebguy

通过设置:检查=>真其*总是真的

在控制器

def new 
    @event = Event.new(:billable => true) 
end 

然后在视图中正确设置默认值

<%= f.radio_button :billable, 'true' %> This is a Billable Project <br /> 
<%= f.radio_button :billable, 'false' %> This is an Internal Project 
+0

如果您尝试使用单选按钮显示隐藏区域,请参阅[我的问题](http://*.com/questions/12669525/show-hide-persistence-when-editing-form-where-radio-button-is-used-to-show-hide) – maxcobmara