Ich möchte das Standardverhalten meiner Submit-Schaltfläche in simple_form ändern, so dass ich nicht explizit angeben muss: disable_with => true für alle meine Formulare. Wie kann ich diese spezielle Änderung in der simple_form.rb vornehmen?Default disable_with für simple_form submit
Antwort
Das Hinzufügen dieser Überschreibung zu meinem simple_form.rb funktionierte wie ein Zauber!
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
Dies ist ein wenig anders in neueren Versionen von Rails, wie Einstellung der Eigenschaft disable_with veraltet ist. Ich schrieb einen Artikel zu diesem Thema: http://www.railsonmaui.com/blog/2014/02/23/simple-form-and-disable-processing-by-default/
Hier ist der neue Code:
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
Und vielen Dank für die Idee @Appster!
Gemäß ActionView::Helpers::FormBuilder.submit, f.button
accepts 1 ~ 2 Parameter, so sollten beide der folgenden Codes bearbeitet werden.
f.submit "MyText", class: "my-btn"
f.submit class: "my-btn"
In meinem Fall diese Codes Hinzufügen Datei zu initialisieren hat gut funktioniert.
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
Ich hoffe, es hilft.
Es ist nicht alle vorhandenen Daten- Attribute auf den Absenden-Button außer Kraft gesetzt hat, die mit Rails 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)
- 1. Titel Fall für simple_form Etiketten
- 2. simple_form keine Eingabe für json
- 3. disable_with funktioniert nicht in Rails 4.2.6
- 4. Rails simple_form association
- 5. java.lang.NoClassDefFoundError für spark-submit
- 6. Rails: benutzerdefinierte Wrapper für Senden-Schaltfläche in Simple_form?
- 7. Wie Standardzeit für simple_form Zeiteingabe einstellen
- 8. Kontrollkästchen für f.collection_check_boxes mit Simple_Form angleichen
- 9. Simple_form Kontrollkästchen erzeugt keine Geschwisterspanne für Kontrollkästchen
- 10. Rails Simple_form Kontrollkästchen für serialisierte Array-Feld
- 11. Simple_form Eingabe nicht validieren
- 12. ‚Default‘ Text für Templat-Kombinationsfeld
- 13. Disable cookplot default für ggplots
- 14. Modellvalidierung Fehler nicht für verschachteltes Modell erscheinen in simple_form
- 15. simple_form association speichert nicht gehört_zu_id
- 16. Simple_form bootstrap_slider Parameter
- 17. Get Default Background Color
- 18. simple_form mit Bootstrap Kontrollkästchen
- 19. options_for_select on simple_form
- 20. simple_form Sammlung Radiobutton
- 21. Simple_form mit Devise Anmelden
- 22. Schienen 4 simple_form collection_select
- 23. rails simple_form Controller # create as HTML
- 24. React Webpack - Submit Button nicht Eingabewert auf Formular abfragen submit
- 25. simple_form Mit den Daten-Inhalt
- 26. Ruby on Rails, simple_form - Ich möchte ein verstecktes Feld der simple_form aus einem html select_tag Feld
- 27. Nicht feuern ng-submit on submit
- 28. Fehler: default Argument für den Parameter 1
- 29. Schlüsselvergleiche für Linq GroupBy mit Default EqualityComparer
- 30. Default Timeout-Werte für WCF-Endpunkte
Für mich kompatibel ist, funktioniert dies mit einigen Tasten und andere nicht. Genauer gesagt funktioniert es mit '<% = f.button: submit%>' aber nicht zum Beispiel mit '<% = f.button: button%>' Könnten Sie erklären, was der Code tut, damit ich herausfinden kann, wie Ich könnte meine eigenen Einstellungen anpassen? – spume