Frage

Wie füge ich ein OnChange-Ereignis hier?

Framework: Schienen
Datenbank: MySQL

Ich bin bevölkern die Optionen aus der Datenbank und das machte mich verwenden options_from_collection_for_select

select_tag(:variable,options_from_collection_for_select(:all, :id, :name))
War es hilfreich?

Lösung

select_tag nimmt einen options hash als letzten Parameter, in dem Sie HTML-Attribute für die Auswahl hinzuzufügen. So ein onchange Attribut hinzufügen:

select_tag :variable, options_from_collection_for_select(:all, :id, :name), :onchange => 'your_onchange_handler()'

Andere Tipps

versuchen, so etwas wie:

:onchange => remote_function(:url => {:controller => 'controller', :action => 'action'})

Für eine select_tag, fügen Sie einfach:

{:onchange => "myHandler();" }

Auch wenn Onchange nicht funktioniert, könnte onChange mit einem Kapital C ausprobieren möchten.

Schließlich stellen Sie sicher, Verwechseln Sie nicht eine select_tag mit einem Formular wählen.

meine Antwort auf eine ähnliche Frage Siehe, nur in Bezug auf eine Form wählen und keinen select_tag

Hinzufügen ein OnChange-Ereignis zu einem Formular wählen Sie

Sie möchten ein onchange Attribut inline hinzuzufügen:

select_tag(:variable,options_from_collection_for_select(:all, :id, :name)), {:onchange => "(function(e){ e.target.value }).apply(this,arguments)"}

Für meinen Fall, sie ist nicht sicher, wo die genannten Funktionen setzen, oder manchmal finde ich es langweilig, eine Funktion zu erstellen nur einen einfachen Tag zu erstellen. So neigen die Menschen eine Inline-Funktion zu schreiben.

aber eine einfache Linie wie {onchange: "e.target.value"} wird nicht funktionieren, da es keine Variablen gibt (z event) definiert sind.

Lösung wäre eine Selbst Ausführung Funktion sein, die Argumente

akzeptiert
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top