我在Rails 4.1中使用Formtastic
我设置日期输入 order: [:year]
因为我只想捕捉年份,而不关心月份和日期 . 我知道您也可以使用 discard_day: true
和 discard_month: true
但添加这些选项似乎没有任何区别 .
问题是在我生成的HTML中,月份和日期字段是隐藏的(正如我希望的那样),但仍然占用Bootstrap列中的大量空间 . 我希望它们隐藏起来,也不要占用任何空间,因为它们会弄乱我的格式 .
#erb
<div class="row">
<%= f.inputs do %>
<div class="form-group nested-fields">
<div class="col-md-2">
<%= f.input :date, order: [:year], start_year: Time.now.year - 100, end_year: Time.now.year %>
</div>
<!-- ./col-md-2 -->
<div class="col-md-8">
<%= f.input :description %>
</div>
<!-- ./col-md-8 -->
<div class="col-md-2 fields">
<%= link_to_remove_association "Remove previous operation", f %>
</div>
<!-- ./col-md-2 -->
</div>
<!-- ./form-group -->
<% end %>
<%# f.inputs %>
</div>
<!-- ./row -->
#Rendered HTML
<div class="row">
<div id="previous_operations">
<div class="row">
<fieldset class="inputs">
<div class="form-group nested-fields">
<div class="col-md-4">
<div class="date_select input optional form-group"id="patient_previous_operations_attributes_0_date_input"><label class=" control-label" for="patient_previous_operations_attributes_0_date">Date</label>
<span class="form-wrapper">
<input id="patient_previous_operations_attributes_0_date_2i" name="patient[previous_operations_attributes][0][date(2i)]" type="hidden" value="1" />
<input id="patient_previous_operations_attributes_0_date_3i" name="patient[previous_operations_attributes][0][date(3i)]" type="hidden" value="1" />
<div class="row">
<div class="col-xs-4"><select class="form-control" id="patient_previous_operations_attributes_0_date_1i" name="patient[previous_operations_attributes][0][date(1i)]" placeholder=".col-xs-4">
<option value=""></option>
...
<option value="2014">2014</option>
</select>
</div>
</div>
</span>
</div>
</div>
<!-- ./col-md-4 -->
特别注意这些行
<input id="patient_previous_operations_attributes_0_date_2i" name="patient[previous_operations_attributes][0][date(2i)]" type="hidden" value="1" />
<input id="patient_previous_operations_attributes_0_date_3i" name="patient[previous_operations_attributes][0][date(3i)]" type="hidden" value="1" />
<div class="row">
<div class="col-xs-4"><select class="form-control" id="patient_previous_operations_attributes_0_date_1i" name="patient[previous_operations_attributes][0][date(1i)]" placeholder=".col-xs-4">
前两个(date_2i和date 2i输入)是根据需要隐藏的月和日字段,但仍占用屏幕的大块 .
后者(date_1i)是我想要占用所有三个当前占用的空间的年份选择(两个是不可见的) . 由于某种原因,formtastic将“col-xs-4”类添加到年份控件中,我认为这是问题,我不知道为什么或如何关闭它 .
帮助赞赏 .
1 回答
您可以隐藏这些字段: