Rails简单形式问题 - 如何将隐藏的输入字段放在最后?

时间:2011-08-05 12:33:23

标签: ruby-on-rails ruby ruby-on-rails-3 simple-form

如何更改简单表单生成的输入元素的顺序?

因为隐藏的复选框会阻止点击标签。

我的simple_form代码:

<label>
  <span>Company<b></b></span>
  <%= f.check_box :company_is_true %>
</label>

表单简单表单生成:

    <label>
        <span>Company<b>0</b></span>
       <input type="hidden" value="0" name="search[company_is_true]">
<input type="checkbox" value="1" name="search[company_is_true]" id="search_company_is_true">
      </label>

我要生成的,点击标签时有效:

<label>
    <span>Company<b>0</b></span>

<input type="checkbox" value="1" name="search[company_is_true]" id="search_company_is_true">
    <input type="hidden" value="0" name="search[company_is_true]">
  </label>

2 个答案:

答案 0 :(得分:2)

我不知道如何在评论列表中添加评论,但是回应:

  

用户应该能够点击标签来检查并取消选中复选框 - Rails   初学者1小时前

这不是阻止用户点击该标签的复选框,而是

中缺少for =“”
<label>
  <span>Company<b></b></span>
  <%= f.check_box :company_is_true %>
</label>

使用&lt;%= f.label%&gt;如所提到的agmcleod,或在标签上添加for =“”:

<label for="search_company_is_true">
  <span>Company<b></b></span>
  <%= f.check_box :company_is_true %>
</label>

答案 1 :(得分:1)

在传统的html表单中,它的结构应该是这样的:

<label for="name">Name: </label>
<input type="text" name="name" />

for属性将其连接到具有name属性或id属性的字段,该属性具有您用于的值。要在rails中执行此操作,请使用以下命令:

<%= f.label :company_is_true, 'Company' %>
<%= f.check_box :company_is_true %>