[ruby-it] Form multibutton con JQuery. Come fare ?

Ale Ds alexdesi a gmail.com
Ven 6 Nov 2009 14:43:18 CET


Alessandro Scolavino wrote:
> 
>> <input class="pulsante" type="submit" name="questo" value="si"/>
>> <input class="pulsante" type="submit" name="quello" value="no"/>
> $('.pulsante').click(function()
> {
>   if ((this).attr('name') == "questo") {
>    fai qualcosa...
>   }
>   else {
>     fai qualcos'altro...
>   }
>   $.post($("form_id").attr('action'), $(this).serialize(), 
> null,"script");
>   return false;
> });
> -------------------

grazie per la proposta,
tuttavia non conviene mettere della logica nelle view,
preferirei tenerla nel controller e fare qualcosa tipo
if params[:button_a]
...
elsif params[:button_b]
....
end
il punto e' che con Ajax non vengono passati nome e valore del parametro 
button {'name_button' => 'value_button'} (e non so perche':), tranne che 
con il metodo suggerito da Giorgian, che propone di creare espicitamente 
un campo nascosto:
> -------------------
><input class="pulsante" type="submit" name="questo" value="si"/>
><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;
> });
> -------------------
Se nn trovo una soluzione piu' elegante penso di usare questa.

Grazie,
Ale DS

PS.
nella tua soluzione penso ci sia un piccolo errore:
invece di $(this).serialize() va usato $("form_id").serialize() per 
poter passare i parametri del form:

$.post($("form_id").attr('action'), $("form_id").serialize(), 
null,"script");
-- 
Posted via http://www.ruby-forum.com/.


More information about the Ml mailing list