jQuery — редактирование встроенной строки таблицы

У меня есть таблица с произвольными столбцами и строками. Этот факт не имеет значения, хотя на самом деле все, что я хочу сделать, это разработать функцию, которая превратит строку (или несколько строк) в серию текстовых входов, содержащих данные в таблице (или пустую, если в ячейке нет данных).

Я не могу найти примеры людей, явно делающих это, поэтому мне интересно, что люди здесь считают лучшим способом найти решение.


person adam    schedule 20.01.2009    source источник


Ответы (3)


Переберите ячейки таблицы в строках и замените содержимое текстовыми входами:

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

Очевидно, вам нужно передать соответствующую строку/строки в функцию.

person Eran Galperin    schedule 20.01.2009
comment
Что произойдет, если в содержимом ячейки есть объекты html? - person Héctor Vergara; 21.01.2009
comment
Я ответил на это упрощенно, как вы это описали. Я обычно использую скрытый ввод с данными в необработанном виде и загружаю текстовый ввод с ним. - person Eran Galperin; 21.01.2009
comment
@EranGalperin Вы случайно не знаете, как можно сохранить текст после реализации вашего примера? Я заметил, что значение ввода по-прежнему остается исходным даже после ввода. - person Matt; 24.05.2013

используйте http://code.google.com/p/jquery-inline-editor/, он делает именно то, что вам нужно

person Matt Kim    schedule 08.02.2012

как говорит Эран.

однако вы также можете посмотреть на такие свойства, как contenteditable и designMode, хотя я не уверен, насколько хорошо они поддерживаются.

после того как вы заменили содержимое текстовым вводом, вы можете использовать подключаемый модуль jquery toggleEdit, чтобы переключать их между режимом предварительного просмотра и режим редактирования.

person alzclarke    schedule 28.03.2011