gpt4 book ai didi

javascript - jquery脏表单手动设置干净

转载 作者:行者123 更新时间:2023-12-02 22:56:11 25 4
gpt4 key购买 nike

我正在使用 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);
}

...

但是,安慰此结果显示该值为未定义

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

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

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

如果您需要更多详细信息,请告诉我。

最佳答案

尝试 $("#uAForm").dirrty("setClean");

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

干杯

关于javascript - jquery脏表单手动设置干净,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57967209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com