2015-09-27 83 views
1

設計是否需要每個表單文本字段的標籤(即:註冊/新建)?設計表單需要每個文本字段的標籤嗎?

當我刪除我的代碼中的標籤,即:「<%= f.label:name%>」時,文本字段也會消失在頁面上。我想顯示文本框,但不顯示標籤。

色器件/註冊/ new.html.erb

<div class="row"> 
    <div class="col-md-8"> 
    <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 
     <%= devise_error_messages! %> 
     <div class="form-group> 
     <%= f.label :name %> 
     <%= f.text_field :name, autofocus: true, class: 'form-control', placeholder: 'Name' %> 
     </div> 
     <div class="form-group> 
     <%= f.label :email %> 
     <%= f.text_field :email, class: 'form-control', placeholder: 'Email' %> 
     </div> 
     <div class="form-group> 
     <%= f.label :password %> 
     <%= f.text_field :password, class: 'form-control', placeholder: 'Password' %> 
     </div> 
     <div class="form-group> 
     <%= f.label :password_confirmation %> 
     <%= f.text_field :password_confirmation, class: 'form-control', placeholder: 'Confirm password' %> 
     </div> 
     <div class="form-group"> 
     <%= f.submit "Sign up", class: 'btn btn-success' %> 
     </div> 
     <div class="form-group"> 
     <%= render "devise/shared/links" %> 
     </div> 
    <% end %> 
    </div> 
</div> 

刪除標籤

enter image description here

刪除標籤之前之後

enter image description here

我讀過它不好的做法排除在表單中的一個文本框外的標籤,但Facebook做它;)

我還是新來的回報率和任何指導表示讚賞。

+1

刪除標籤後,您的表單看起來如何?你可以發佈嗎? – Pavan

回答

2

確實需要制定一個標籤爲每個文本框

Devise is a gem號。

它使用與其他Ruby/Rails應用程序相同的助手和代碼構建。它對使用標籤沒有任何特殊要求。

事實上,Rails的form助手,甚至其他幫手都輸出了vanilla HTML。如果您可以在html中沒有標籤,那麼您可以使用表單助手來完成。


下面是我們爲devise登記表代碼(HAML):

#app/views/devise/registrations/new.haml 
.authenticate 
    = render "devise/shared/title" 
    = simple_form_for(User.new, as: resource_name, url: registration_path(resource_name)) do |f| 
    - if flash[:error] 
     .form-errors= flash[:error] 
    = f.error_notification 
    .form-inputs 
     = f.input :email, required: true, autofocus: true, placeholder: "Email" 
     %hr 
     = f.input :password, required: true, placeholder: "Password" 
     = f.input :password_confirmation, required: true, placeholder: "Confirm" 
    .form-actions 
     .bar 
     = link_to "", "#", rel: "submit", class: "ion-forward", title: "Register", data: { placement: "right" } 

= render "devise/shared/links" 

你應該嘗試以下操作:

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 
    <%= f.text_field :name, autofocus: true, class: 'form-control', placeholder: 'Name' %> 
    <%= f.text_field :email, class: 'form-control', placeholder: 'Email' %> 
    <%= f.text_field :password, class: 'form-control', placeholder: 'Password' %> 
    <%= f.text_field :password_confirmation, class: 'form-control', placeholder: 'Confirm password' %> 
    <%= f.submit "Sign up", class: 'btn btn-success' %> 
    <%= render "devise/shared/links" %> 
<% end %> 

刪除任何HTML元素,以確保它們並不妨礙Rails正確顯示元素。如果有效,您將能夠重建HTML和CSS以查看問題所在。