non sono una grande programmatore javascript ma devo risolvere questo problema:
sto cercando di scrivere una logica in jquery che permetta l'editing inline di una tabella
in pratica, cliccando su un elemento con classe "edit" l'elemento stesso viene sostituito con un input che eredita il testo dell'elemento: sempre al click tutta la tabella viene circondata da un tag form e dai relativi bottoni per il submit/reset in modo che l'utente possa salvare tutti i valori con un solo click.
fin qui tutto ok: quello che non riesco a capire è come gestire correttamente l'evento submit di questa form (sul quale volevo fare una richiesta ajax passando al mio script lato server tutti i parametri (valori dei campi) della form creata
ecco il codice
il problema da quanto ho capito è che lo script nel punto in cui chiamo la funzione sul submit non è in grado di leggere gli elementi del DOM che ho inserito. Avete qualche idea?
$(document).ready(function(){
var cont = 0;
$('.edit').bind('click',function(){ // ad ogni click sull'elemento edit
idSpan = $(this).attr("id");
testoSpan = $(this).text();
cont++; // aumenta cont
if(cont<=1){ // dopo il primo click appendi la form intorno alla tabella e aggancia il submit
$(this).parents("table").wrap("<form action=\"#\" id=\"update\"></form>");
$("<input type=\"reset\" value=\"annulla\" />").insertAfter($(this).parents("table"));
$("<input id=\"lancia\" type=\"submit\" value=\"salva i dati\" />").insertAfter($(this).parents("table"));
} // fine if prima iterazione
/* TO DO: size dell'input e name */
$(this).replaceWith("<input type=\"text\" name=\"nomeinput\" class=\"text\" size=\"30\" value=\""+testoSpan+"\" />"); // sotituisci il testo con un input con value pari al testo
}); // fine bind
$('#update').submit(function(){
// logica sul submit dell'invio
})
});
![]()
Segnalibri