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))
¿Fue útil?

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

Adición de un evento onchange a una forma Seleccionar

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top