【发布时间】:2017-08-08 14:20:23
【问题描述】:
我在 rails 项目中使用 simple_form gem,并准备实现一个表单。表格很简单:
<%= simple_form_for admin, url: url do |f| %>
<div class="form-inputs">
<%= f.input :name %> #String
<%= f.input :email %> #String
<%= f.input :sso_only %> #Boolean
</div>
<% end %>
生成的html是:
<form novalidate="novalidate" class="simple_form new_user" id="new_user" action="/admin/admins" accept-charset="UTF-8" method="post">
<div class="form-group string required user_name">
<label class="string required col-sm-4 control-label" for="user_name">
<abbr title="required">*</abbr>
Name
</label>
<div class="col-sm-8">
<input class="string required form-control" type="text" name="user[name]" id="user_name">
</div>
</div>
<div class="form-group email required user_email">
<label class="email required col-sm-4 control-label" for="user_email">
<abbr title="required">*</abbr>
Email
</label>
<div class="col-sm-8">
<input class="string email required form-control" type="email" value="" name="user[email]" id="user_email">
</div>
</div>
<div class="form-group boolean optional user_sso_only">
<div class="col-sm-8">
<div class="checkbox">
<input value="0" type="hidden" name="user[sso_only]">
<label class="boolean optional" for="user_sso_only">
<input class="boolean optional" type="checkbox" value="1" name="user[sso_only]" id="user_sso_only">
SSO Only
</label>
</div>
</div>
</div>
</form>
显示是:
从图中我们可以看到,name和email字段包括label和input两部分。 label 有 4 个大小,input 有 8 个。
但是checkbox只包含一个部分,即8。所以checkbox在那个位置时非常难看。
通常,我希望复选框与input 框的位置相同。这应该是表单的正常显示。
因此,有没有办法通过使用simple_form 本身来达到这个目的?无需自定义 CSS。
我尝试过wrapper,但失败了。
【问题讨论】:
标签: ruby-on-rails twitter-bootstrap simple-form