2009-01-20 27 views
14

Tengo una tabla con columnas y filas arbitrarias. Este hecho es irrelevante aunque realmente, todo lo que quiero hacer es desarrollar una función que convierta una fila (o múltiples filas) en una serie de entradas de texto que contengan los datos en la tabla (o vacíe si no hay datos en la celda).jQuery - Editar una fila de la tabla en línea

No puedo encontrar ningún ejemplo de personas haciendo esto explícitamente, por lo que me pregunté qué personas piensan que es la mejor manera de encontrar una solución.

Respuesta

30

iterar sobre las celdas de la tabla en las filas, y reemplazar el contenido con entradas de texto:

function editRow(row) { 
    $('td',row).each(function() { 
     $(this).html('<input type="text" value="' + $(this).html() + '" />'); 
    }); 
} 

lo necesario para pasar la fila correspondiente/filas en la función obviamente.

+0

¿Qué ocurre si el contenido celular tiene entidades html? –

+0

Lo respondí de la manera simplista que usted lo describió. Usualmente uso una entrada oculta con los datos en forma cruda, y cargo el ingreso de texto con eso. –

+0

@EranGalperin ¿Sabrías cómo se podría guardar el texto después de implementar tu ejemplo? Observé que el valor de la entrada aún permanece en su original incluso después de tipear. – Matt

0

como Eran dice.

Sin embargo, también podría consultar propiedades como contenteditable y designMode, aunque no estoy seguro de lo bien que son compatibles.

una vez que haya reemplazado el contenido con entradas de texto, puede usar el complemento jquery toggleEdit para administrar el cambio entre el modo de vista previa y el modo de edición.

Cuestiones relacionadas