Rails 3 show/hide div 编辑

Rails 3 show/hide div on edit

我的观点如下...

 <fieldset class="learner-registration">
   <p>
    <%= event_form.check_box :requires_registration %>
    <%= event_form.label :requires_registration, 'Require participants to register (optional)' %>
    <%= event_form.text_field :evaluator_id, :class => "form-control" %>
    <span class="help-block">Particpants cannot view Event Location until they enter email and name</span>
   </p>
 </fieldset>

...以及以下 coffeescript...

jQuery ->
    $("#event_evaluator_id").hide()
    $('#event_requires_registration').change ->
        $('#event_evaluator_id').toggle @checked
        return

这很好用,并且可以像我想要的那样切换 event_evaluator_id 字段,此外还可以在初始页面加载时隐藏该字段。我遇到的问题是在编辑页面时,check/unchecked 属性 没有持续存在。因此,使用上面的代码,如果我选中了复选框,则 event_evaluator_id 字段在我编辑页面时会被隐藏。

我试过类似...

jQuery ->
    if $("#event_requires_registration").val() = null
        $("#event_evaluator_id").hide()
    else
        $("#event_evaluator_id").show()
    $('#event_requires_registration').change ->
        $('#event_evaluator_id').toggle @checked
        return

...但是 event_evaluator_id 字段最终始终可见(选中或未选中)。任何帮助表示赞赏。

编辑

这里还有复选框上的 html:

<input checked="checked" id="event_requires_registration" name="event[requires_registration]" type="checkbox" value="1">

我看到的是 'value' 的值是 1,无论是选中还是未选中。

试试这个

$('#event_requires_registration').is ':checked'

为了上下文,这里是整个事情:

jQuery ->
    if $("#event_requires_registration").is ':checked'
        $("#event_evaluator_id").show()
    else
        $("#event_evaluator_id").hide()
    $('#event_requires_registration').change ->
        $('#event_evaluator_id').toggle @checked
        return