Cómo añadir un evento onchange para seleccionar la etiqueta en los carriles
-
13-09-2019 - |
Pregunta
¿Cómo agrego un evento onchange aquí?
Marco: carriles
Base de datos: MySQL
Estoy poblar las opciones de la base de datos y que me hizo uso options_from_collection_for_select
select_tag(:variable,options_from_collection_for_select(:all, :id, :name))
Solución
select_tag
toma un hash options
como su parámetro final, en la que se puede añadir cualquier atributo HTML para la selección. Así que para añadir un atributo onchange
:
select_tag :variable, options_from_collection_for_select(:all, :id, :name), :onchange => 'your_onchange_handler()'
Otros consejos
intentar algo como:
:onchange => remote_function(:url => {:controller => 'controller', :action => 'action'})
Para una select_tag, sólo tiene que añadir:
{:onchange => "myHandler();" }
Además, si onchange no funciona es posible que desee probar onChange
con C mayúscula.
Por último, asegúrese de no confundir un select_tag con una forma de selección.
Véase mi respuesta a una pregunta similar, sólo con respecto a una forma de seleccionar y no un select_tag
Es posible que desee agregar una línea de atributos onchange
:
select_tag(:variable,options_from_collection_for_select(:all, :id, :name)), {:onchange => "(function(e){ e.target.value }).apply(this,arguments)"}
En mi caso, no estoy seguro de dónde poner las funciones con nombre, o, a veces me resulta tedioso para crear una función sólo para crear una etiqueta simple. Así que las personas tienden a escribir una función en línea.
sino una línea simple como {onchange: "e.target.value"}
no funciona, porque no hay variables (por ejemplo event
) definido.
Solución sería una función de auto ejecución que acepta argumentos