【发布时间】:2015-09-06 18:03:46
【问题描述】:
我正在尝试在 Rails 4 中制作应用程序。
我对表单使用简单的表单,并有一个 js 表单帮助文件,我使用它来隐藏或显示表单元素,具体取决于用户在表单中移动时如何回答问题。
我的问题是这个js函数在初始创建时工作正常,但是如果我回来编辑表单,当draft属性== false时会显示提醒id内容。
还有其他方法可以解决这个问题吗?
我的表格有:
<%= f.simple_fields_for :scope do |finalises_s| %>
<%= finalises_s.simple_fields_for :finalise do |dr| %>
<div class="row">
<div class="col-md-3 col-md-offset-1">
<%= dr.label :draft, 'Would you like to save this draft and finish it later?', class: 'question-project' %>
</div>
<div class="col-md-7">
<%= dr.collection_radio_buttons :draft, [[true, ' Yes, save a draft'], [false, ' No, publish it']], :first, :last, {:item_wrapper_class => 'fixradio'}, {:class => "response-project"} %>
</div>
</div>
<div id="reminder">
<div class="row">
<div class="col-md-3 col-md-offset-1">
<%= dr.label :reminder, 'Would you like a reminder to complete this draft?', class: 'question-project' %>
</div>
<div class="col-md-7">
<%= dr.collection_radio_buttons :reminder, [[true, ' Yes'], [false, ' No']], :first, :last, {:item_wrapper_class => 'fixradio'}, {:class => "response-project"} %>
</div>
</div>
我的 js form-helper 文件有:
if $("input:radio[name='"+ inString + "[scope_attributes][finalise_attributes][draft]']").is(':checked')
$('#reminder').show()
else
$('#reminder').hide()
$(document).on 'change', "input:radio[name='"+ inString + "[scope_attributes][finalise_attributes][draft]']", ()->
if $(this).val() == 'true'
$('#reminder').show()
else
$('#reminder').hide()
【问题讨论】:
标签: ruby-on-rails forms coffeescript