0

我有一个表格,它只有一行,只有一个单元格是可编辑的。我已经用下面的代码完成了这个。

$("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 属性,我可以保存旧值并将其传递给更新函数。

4

2 回答 2

0

我会将原始值存储在变量中的某个位置,并在发送.ajax调用之前在提交函数中比较两者。

于 2010-06-02T00:40:56.113 回答
0

有两种可能性。

  • 在函数之间传递变量
  • 使变量全局

如果您想要全局变量,请不要使用“var”关键字

改变:

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

对此:

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

编辑

如果单击功能在页面刷新之前被多次点击,并且假设您想要保留原始表格行的副本,您可以尝试这样做。将原始表的副本保存在变量中,然后您可以使用 ID 号查询原始表的 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));
 }

现在您可以循环遍历新表测试它对旧表的值。这种方法会根据表的大小使用大量内存。

于 2010-06-02T01:59:55.540 回答