我有一個大 simple_form形式需要被啓用或禁用取決於在窗體的部分被加載領域。simple_form:true或只讀:無添加禁用禁用表單真實的每個輸入
我的問題是:你怎麼快速禁止任何形式的輸入使用simple_form傭工/包裝?
Simple Form's documentation解釋如何disabled: true
可以用來禁用單一的輸入場:
<%= simple_form_for @user do |f| %>
<%= f.input :username, disabled: true %>
<%= f.button :submit %>
<% end %>
但文檔是我怎麼能通過simple_form助手禁用整個形式,而無需重複不太清楚disabled: true
在字面上每個表單輸入。
我嘗試將disabled: true
和readonly: true
傳遞給simple_form的:wrapper_mappings
選項,但那不起作用。
例如代碼:
我經由部分負荷的形式,以限定顯示simple_form變量。這工作:
#user/show.html.erb:
<%= render partial: 'shared/form', locals: {questionnaire: @questionnaire, readonly_state: true, disabled_state: true, bootstrap_form_class: 'form-horizontal'} %>
然而, readonly_state和 disabled_state沒有工作,除非我把它們傳遞給每一個表單輸入:
# shared/_form.html.erb
<%= simple_form_for(@questionnaire, :html => {:class => bootstrap_form_class},
:wrapper_mappings => {check_boxes: :vertical_radio_and_checkboxes, file: :vertical_file_input,
boolean: :vertical_boolean }) do |f| %>
<%= f.input :username, disabled: disabled_state, hint: 'You cannot change your username.' %>
<%= f.input :email, disabled: disabled_state %>
<%= f.input :city, disabled: disabled_state %>
<%= f.input :country, disabled: disabled_state %>
. . .
<%= f.button :submit %>
<% end %>
你可以很快地看到重複這得到與一個大的形式。