当检测到表单值已更改时,如何防止发生事件?

How can I prevent an event when detect the form values has changed?

本文关键字:何防止 事件 检测 表单      更新时间:2023-09-26

我在加载html时添加了一些js代码。像下面的

var form = $('form');
$(':input').change(function() {
    if ($('[name=form-update-detector]', form).length == 0) {
        $(form).prepend('<input type="hidden" name="form-update-detector"/>')
    }
    $('[name=form-update-detector]', form).val('true');
});

它的工作原理。我的问题是,当我检测到表单值已经改变,我怎么能警告用户,当他们单击其他元素(绑定重定向事件),而不保存此表单?绑定事件的元素可以是<a></a><p></p>或其他任何元素。代码可以是onclick="someEvent()"$('#someId').on('click',function(){})或href等。

您可以将初始值(当表单加载时)存储在一个变量中,例如cleanData,当用户单击另一个附加了其他操作的元素时,您可以首先将表单数据存储在另一个变量中,例如dirtyData,然后比较这两个变量,如果相等,则继续执行所单击元素附加的操作,否则显示警告