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

问题描述:

我在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,然后比较这两个,如果相等,则继续执行附加在单击元素上的动作,否则显示警告。

+0

我明白了,如果没有通过上面附带的我的js代码比较两个值,表单中的任何更改都可以轻松检测到。但是我无法得到用户点击的事件,也无法检测到它是重定向事件。 –

+0

我想你必须在一个特定的DOM元素上附加重定向事件。我对吗? –