Quiero cambiar el comportamiento predeterminado de mi botón de envío en simple_form, por lo que no necesito especificar explícitamente: disable_with => true para todos mis formularios. ¿Cómo puedo hacer este cambio particular en el archivo simple_form.rb?Default disable_with for simple_form submit
6
A
Respuesta
3
Agregar esta anulación a mi simple_form.rb funcionó como un amuleto!
SimpleForm::FormBuilder.class_eval do
def submit_with_override(field, options = {})
submit_without_override(field, {:disable_with => 'saving...'}.merge(options))
end
alias_method_chain :submit, :override
end
5
Esto es un poco diferente en las versiones más nuevas de Rails, ya que el establecimiento de la propiedad disable_with está en desuso. Escribí un artículo sobre esto: http://www.railsonmaui.com/blog/2014/02/23/simple-form-and-disable-processing-by-default/
Aquí está el código nuevo:
SimpleForm::FormBuilder.class_eval do
def submit_with_override(field, options = {})
data_disable_with = { disable_with: 'Processing...' }
options[:data] = data_disable_with.merge(options[:data] || {})
submit_without_override(field, options)
end
alias_method_chain :submit, :override
end
Y gracias a @Appster a la idea!
2
De acuerdo con ActionView::Helpers::FormBuilder.submit, f.button
accede a 1 ~ 2 parámetros, por lo que se deben trabajar los dos códigos siguientes.
f.submit "MyText", class: "my-btn"
f.submit class: "my-btn"
En mi caso, la adición de estos códigos para inicializar archivo funcionó bien.
SimpleForm::FormBuilder.class_eval do
def submit_with_override(value=nil, options={})
value, options = nil, value if value.is_a?(Hash)
data_disable_with = { disable_with: 'Processing...' }
options[:data] = data_disable_with.merge(options[:data] || {})
submit_without_override(value, options)
end
alias_method_chain :submit, :override
end
Espero que ayude.
0
no lo hizo anular cualquier Data- atributos existentes en el botón de envío que es compatible con los carriles 5.
module DisableDoubleClickOnSimpleForms
def submit(field, options = {})
if field.is_a?(Hash)
field[:data] ||= {}
field[:data][:disable_with] ||= field[:value] || 'Processing...'
else
options[:data] ||= {}
options[:data][:disable_with] ||= options[:value] || 'Processing...'
end
super(field, options)
end
end
SimpleForm::FormBuilder.prepend(DisableDoubleClickOnSimpleForms)
Cuestiones relacionadas
- 1. rails simple_form - campo oculto - crear?
- 2. es application/x-www-form-urlencoded default for html form?
- 3. Jquery submit vs. javascript submit
- 4. etiquetas de colección simple_form
- 5. Rails simple_form atributo required mark (*)
- 6. ¿Form_tag funciona con Simple_form?
- 7. entrada de texto simple_form
- 8. ¿Por qué preferences.getString ("clave", "DEFAULT") siempre devuelve "DEFAULT"?
- 9. SimpleForm sin for (no modelo)
- 10. php form submit utf8?
- 11. jQuery Submit Form onChange
- 12. button_to without submit
- 13. wordpress form action submit
- 14. Jquery trap form submit()
- 15. jQuery Multiple Forms Submit
- 16. PHP Default Timezone Config
- 17. Android valor 'depurable' default
- 18. Django Setup Default Logging
- 19. C# Default Parameters
- 20. TSQL Default Minimum DateTime
- 21. Drupal 7 Default .htaccess
- 22. entrada simple_form con múltiples campos
- 23. Scala: ¿== default es igual a?
- 24. entrada [type = "submit"] en jQuery
- 25. html5 requerido y jquery submit()
- 26. html button v.s. html submit?
- 27. Cómo establecer el valor actual en la colección en simple_form
- 28. Virtual Default Destructors en C++
- 29. Django: ModelChoiceField remove default --------- choice
- 30. Agregue datos adicionales a la entrada simple_form
Para mí, esto funciona con algunos botones y otros no. Específicamente, funciona con '<% = f.button: submit%>' pero no, por ejemplo, '<% = f.button: button%>' ¿Podría explicarme qué está haciendo este código para que pueda resolver cómo ¿Podría modificar mi propia configuración? – spume