我有一个有一行的表,只有一个单元格可以编辑。我用以下代码完成了这个。
$("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属性,我可以保存旧值并将其传递给更新函数。
答案 0 :(得分:0)
我会将原始值存储在变量中的某个位置,并在发送.ajax
调用之前比较提交函数中的两个。
答案 1 :(得分:0)
有两种可能性。
如果您想要变量global,请不要使用“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));
}
现在你可以循环遍历新表测试它的值了解旧表。这个方法根据表的大小来使用大量的内存。