【发布时间】:2014-07-16 13:24:54
【问题描述】:
我在 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”类添加到年份控件中,我认为这是问题所在,我不知道为什么或如何将其关闭。
帮助表示赞赏。
【问题讨论】:
标签: html css ruby-on-rails ruby-on-rails-4 formtastic