jQuery Dirrty 表单手动设置干净



我正在使用jquery dirrty插件来检查表单的状态,并在有一些未保存的更改时防止它重新加载。

链接到jquery.dirrty github

流:

1(我已经初始化了jquery.dirty 如下

$(function(){
initializeDirtyForm();
})
/** dirty form initialization*/
function initializeDirtyForm(){
$("#uAForm").dirrty().on("dirty", function(){
$("#uAFormSubmit").removeAttr("disabled");
}).on("clean", function(){
$("#uAFormSubmit").attr("disabled", "disabled");
});
}

2(页面上有一个表格,当它单击td单元格时,它会进行ajax调用。

function ajaxCallEdit()
{
var result = checkDirtyStatus();
if(result === false) {
return;
}
$.ajax({
....
....
....
....
success:function(){
initializeDirtyForm();
}
)}
}
/** check if the form is dirty */
function checkDirtyStatus(){
dirtyStatus = $("#uAForm").dirrty("isDirty");
if(dirtyStatus == true){
if (confirm("Changes you made may not be saved. Do you still want to reload?")) {
return true;
}else{
return false;
}
}
}

如果表单脏了,它完全可以正常工作并显示警告消息。

问题

这是主要问题,如果我强制它重新加载,(这意味着它实际上不会重新加载页面,而是会进行 ajax 调用(它仍然将表单的状态设置为脏。我已经尝试重新初始化jquery表单,但该表单仍然被标记为脏。

为了更加确定表单的状态,我检查了状态并尝试控制台登录ajaxSuccess。

....
success: function(){
initializeDirtyForm();
var result = checkDirtyStatus();
console.log(result);
}
...

但是,安慰此结果显示值为undefined

我找不到与手动设置相关的任何文档,并且重新启动未按预期工作。

因此,如果您是javascript向导,请检查上面附加的jquery.dirrty.js文件,并检查我是否可以从js文件或任何其他有助于我解决问题的黑客中触发以下部分。

setClean: function(){
this.isDirty = false;
this.history[0] = this.history[1];
this.history[1] = "clean";
}

如果您需要任何进一步的详细信息,请告诉我。

try $("#uAForm"(.dirrty("setClean"(;

我只是需要做同样的事情,这对我有用。

干杯

相关内容

  • 没有找到相关文章

最新更新