如何检查是否脏,但在保存时不检查
How do I check if dirty, but not when saving?
我正在使用我在这里的另一篇帖子中找到的一些代码,它运行良好,当您尝试在保存更改之前关闭页面时,它会提示您并询问您是否要留在页面上。问题是,如果单击保存按钮(带有回发的asp按钮),它会为您提供相同的消息。
所以我基本上需要停止它在保存按钮的回发上显示。
var form_clean;
// serialize clean form
$(function () {
form_clean = $("form").serialize();
});
// compare clean and dirty form before leaving
window.onbeforeunload = function (e) {
var form_dirty = $("form").serialize();
if (form_clean != form_dirty) {
return 'There is unsaved form data.';
}
};
我建议使用一个标志来表示您正在执行保存并且该规则不应适用。像这样:
var form_clean;
var checkDirty = true;
//this should be called when the save button is clicked, but prior to the page post
function onSave(){
checkDirty = false;
}
window.onbeforeunload = function (e) {
if(checkDirty){
var form_dirty = $("form").serialize();
if (form_clean != form_dirty) {
return 'There is unsaved form data.';
}
}
};
我还建议您在 DOM 完全准备就绪后设置 form_clean
变量,这样您就可以确保序列化正确的数据:
$(document).ready(function(){
form_clean = $("form").serialize();
});
页面重新加载后,回发后应自动重置标志
如果您在设置onSave
函数时需要帮助,可以使用以下内容:
$("#mySubmitButtonID").click(function(){
onSave();
});
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 如何在不检查HTTP标头的情况下检测移动浏览器
- 表单验证工作不正常,在不检查条目的情况下继续
- 如何在不检查设备的情况下禁用移动浏览器上的滚动
- jquery -ajax 不检查控制器的布尔值
- 具有透明度的HTML Canvas putImageData会导致保存不正确的RGB
- Ember.js模型保存不向服务器发送数据
- for循环在javascript中循环一次后不检查条件
- 如何检查是否脏,但在保存时不检查
- 类绑定在 emberjs 中不起作用,因为不检查属性
- 保存不使用代码的 JSON
- 煎茶触摸 2 模型关联保存不正确的数据进行存储
- PHP 文件上传 - 不检查文件大小
- 使用 jQuery 不检查隐藏的 td:s
- JavaScript 不检查逻辑语句
- 猫鼬保存不正确的值
- 反应无线电输入不检查
- jQuery 'on' 单击不检查更新的选择器
- 保存不带按钮的数据表单
- JQuery检查输入是否为空而不检查加载