Как обновить строку таблицы с помощью кнопки сохранения, используя .ajax - PullRequest
0 голосов
/ 02 июня 2010

У меня есть таблица с одной строкой, и только одна ячейка будет редактируемой. Я сделал это с помощью следующего кода.

$("td#effEndDate").click(function() {
            if (!$(this).hasClass("edit")) {
                var value = jQuery.trim($(this).html());
                $(this).html("<input id=\"txtEdit\" type=\"text\" value=\"" + value + "\" />");
                $(this).addClass("edit");
                $("#txtEdit").focus();
            }
        });

Теперь это та часть, где я застрял.

После обновления поля необходимо нажать кнопку сохранения, чтобы вызвать соответствующий метод .ajax для обновления базы данных. Но как я могу сравнить предыдущее значение с текущим значением при нажатии кнопки? Поскольку я не использую свойство onblur, где я мог бы сохранить старое значение и передать его в функцию обновления.

Ответы [ 2 ]

0 голосов
/ 02 июня 2010

Есть две возможности.

  • Передать переменную между функциями
  • Сделать переменную глобальной

если вы хотите, чтобы переменная global не использовала ключевое слово "var"

Изменение:

var value = jQuery.trim($(this).html()); 

К этому:

value = jQuery.trim($(this).html()); 

Редактировать

Если функция щелчка нажимается более одного раза до обновления страницы и при условии, что вы хотите сохранить копию исходных строк таблицы, вы можете попробовать это. Сохраните копию исходной таблицы в переменной, затем вы можете запросить исходную таблицу для HTML, используя идентификационный номер. Вот быстрый макет

сначала сохраните таблицу в переменной при загрузке страницы. Это сохранит оригинальную копию таблицы

 //get a copy of the table
 var GetCopyofOriginalTable = function() {
      var TableToBeCopied = $('the appropriate selector');
      CopyOfTable = JQuery.extend(true, {}, TableToBeCopied);  //Notice no var, its global
 }

 //Now store the variale
 GetCopyofOriginalTable();

 var FindTableRowByID = function(trID) {
      return $('table:has(tr#' + trID));
 }

Теперь вы можете перебирать новую таблицу, проверяя ее значение на старой таблице. Этот метод требует много памяти в зависимости от размера таблицы.

0 голосов
/ 02 июня 2010

Я бы сохранял исходное значение где-нибудь в переменной и сравнивал их в функции отправки перед отправкой вызова .ajax.

...