我认为我有以下内容......
<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">
我所看到的是&#39;价值&#39;是1是选中还是未选中。
答案 0 :(得分:2)
试试这个
$('#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