2011-02-02 11 views
6

Rails 2.3.5, Ruby 1.86Seleccionar en el cambio no se escribe

No he podido resolver esto. El 'onchange' en la selección a continuación no se está escribiendo (no se ha escrito ningún cambio en el HTML). No he visto una referencia a la sintaxis de ser diferente, excepto en algunos ejemplos de más edad del onchange está rodeado entre paréntesis:

<%= f.select :directory_id, options_for_select(@directories, @directory_to_select), :onchange => 'folder_lookup()' %> 

resultados en:

<select id="contact_directory_id" name="contact[directory_id]"> 
<option value="2">test_1</option> 
<option value="4">test_2</option> 
<option value="33" selected="selected">test_3</option> 
</select> 


si simplemente el cambio "f.select" para "select_tag" el onchange está escrito correctamente (no es que quiera hacer eso):

<%= select_tag :directory_id, options_for_select(@directories, @directory_to_select), :onchange => 'folder_lookup()' %> 

resultados en:

<select id="contact_directory_id" name="directory_id" onchange="folder_lookup()"> 
<option value="2">test_1</option> 
<option value="4">test_2</option> 
<option value="33" selected="selected">test_2</option> 
</select> 


me estoy perdiendo una diferencia entre la sintaxis para onchange un ayudante de selección y select_tag?

Gracias!

Respuesta

22

Esto es lo que quiere:

<%= f.select :directory_id, options_for_select(@directories, @directory_to_select), {}, :onchange => 'folder_lookup()' %> 

con SELECT la firma del método es el siguiente select(object, method, choices, options = {}, html_options = {}). onchange es una opción html, ya que no tienes ninguna opción, necesitas un hash vacío para que tu último onchange se tome como una opción html_option.

+0

Gracias - ¡muy apreciado! Eché de menos ver que necesitaba un marcador de posición allí. – Reno

Cuestiones relacionadas