如何在检测到表单值已更改时防止发生事件?
问题描述:
我在html加载时添加了一些js代码。 Like below如何在检测到表单值已更改时防止发生事件?
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,然后比较这两个,如果相等,则继续执行附加在单击元素上的动作,否则显示警告。
我明白了,如果没有通过上面附带的我的js代码比较两个值,表单中的任何更改都可以轻松检测到。但是我无法得到用户点击的事件,也无法检测到它是重定向事件。 –
我想你必须在一个特定的DOM元素上附加重定向事件。我对吗? –