我有一个表单,我需要用户选择(使用单选按钮)一个选项,该选项将确定其下方的下一个表单字段。在这种情况下,他们的帖子可以是帖子或帖子的修订。因此,选择“帖子”将显示标题字段(为帖子命名),选择“修订”将显示现有帖子的选择列表以供选择(标题将被继承)。
_form.html.erb
<!--Form inputs-->
<%= f.collection_radio_buttons :is_revision, [[false, 'Post'] ,[true, 'Revision']], :first, :last %>
<%= f.input :revision_id, collection: @originals, :input_html => {:id => 'revision'} %>
<%= f.input :title, :input_html => { :maxlength => '50', :placeholder => 'Title', :id => 'title'} %>
<!--Javascript-->
<script type="text/javascript">
$('input[name="post[is_revision]"]').on("change", function(){
if ( $("#post_is_revision_true").attr("checked")){
$("#title").hide();
$("#revision").show();
}
if ( $("#post_is_revision_false").attr("checked")){
$("#revision").hide();
$("#title").show();
}
});
</script>
我应该提到,这在隐藏和显示一个字段时效果很好,但在选择另一个单选按钮时没有任何变化。我觉得逻辑是正确的(虽然我不是最擅长 JS)但我似乎无法理解这一点。