[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