Erwin1
(Erwin)
July 9, 2010, 3:31pm
1
In my header I have a drop-down to change the language, inside a form
I would like to submit the form without any submit button, just upon
selection changing
this his the generated code from my haml code
<form onchange="this.form.submit();" method="post" action="/
switch_language?locale=fr">
<select name="language " id="language_"><option value="en">Anglais</
<option selected="selected" value="fr">Français</option>
<option value="de">Allemand</option></select>
</form>
but I get a JS error
this.form is undefined
what did I missed ...
thanks for your help
this his the generated code from my haml code
Anglais</
Français
Allemand
but I get a JS error
this.form is undefined
what did I missed …
The onchange event is on the tag, so “this” is a form and doesn’t have a “.form” method. Try doing:
<form onchange="this.submit();"...
P.S. It does feel icky having onchange=“” in your markup, but let’s worry about going to Unobtrusive Javascript later…
Cheers,
Andy
hassan
(Hassan Schroeder)
July 9, 2010, 3:40pm
3
Actually, a form element doesn't have an "onchange" event handler --
you want to put that on the select, referring to the parent form...
Erwin1
(Erwin)
July 9, 2010, 3:52pm
5
Thanks Hassan
I modified my code ( onchange is now on the select )
but it seems not to be working ... I don't have a submit submit
button ...
should I add a submit button w display:none ?
Erwin1
(Erwin)
July 9, 2010, 3:54pm
6
Ok it runs ... I did a mistake copying the :html => { :onchange ...
into the select
I had to write only :onchange... into the select
good
Thanks a lot
have a nice we
hassan
(Hassan Schroeder)
July 9, 2010, 3:57pm
7
Are you using Firefox with Firebug? If not, you should be, because it's
very good at reporting errors.
What does your generated form html look like now?