[ruby-it] Form multibutton con JQuery. Come fare ?
Pietro Giorgianni
giorgian a gmail.com
Ven 6 Nov 2009 10:05:13 CET
Il 05 novembre 2009 16.43, Ale Ds <alexdesi a gmail.com> ha scritto:
> Ciao a tutti,
> domandina a tutti quelli che usano jquery con rails:
>
> Se voglio rendere la chiamata submit di un form in una chiamata ajax
> basta inserire in application.js il seguente codice:
> ...
> $('#new_user').submit(function(){
> $.post($(this).attr('action'), $(this).serialize(), null,
> "script");
> return false;
> });
> ...
>
> ma cosa fare se si hanno piu' submit button nel form inquestione ?
>
> ho notato che il controller nn riceve in parameters il classico
> parametro "commit"=>"Inserisci", con cui potrei discrimirare i vari
> button del form
ciao,
secondo me, se non hai un motivo valido per farlo, non è il caso di
rinunciare a usare i submit, perché, tenendoli, rendi il form
funzionante sia con che senza js.
Proposta quick and dirty:
<input class="pulsante" type="submit" name="questo" value="sì"/>
<input class="pulsante" type="submit" name="quello" value="no"/>
nel js:
function crea_hidden(obj) {
return '<input type="hidden" name="' + obj.attr('name') + '"
value="' + obj.val() + '"/>'
}
$('.pulsante').click(function()
{$('#new_user').append(crea_hidden($(this))); return true; });
$('#new_user').submit(function(){
$.post($(this).attr('action'), $(this).serialize(), null,"script");
return false;
});
In questo modo il controller riceve gli stessi dati sia via ajax che non.
Nota forse ovvia: non conviene mai discriminare in base al valore del
submit, dato che può essere localizzato, ma piuttosto in base al nome
del campo, cioè con:
e, quindi, nel controller,
if params[:questo]
...
end
pietro
More information about the Ml
mailing list