Como te decía es cuestión de no utilizar remove(). En lugar de ello, podríamos utilizar hide() para el span y remove para el input (porque sólo lo necesitamos para modificar el span).
El resultado, modificando el primer código que te puse, sería el siguiente:
Código Javascript
:
Ver original$(document).ready(function()
{
$('.mispan').click(function()
{
var mispan = $(this);
var data = mispan.text();
mispan.hide();
$('<input class="miedit" type="text" value="'+data+'" />').insertBefore(mispan).focus();
$('.miedit').blur(function()
{
var data = $(this).val();
$(this).remove();
mispan.text(data).show();
});
});
});
Ahora, en medio pues haz lo que tengas que hacer con ajax y guarda y recoge los datos convenientemente. Si lo de utilizar un botón no te convence, esta es la solución ^^
Un saludo!