我正在尝试为未保存的数据创建导航警告,但我遇到了麻烦,因为我要检查的页面会清除单选按钮。页面清除它们的方式是删除单选按钮并添加新按钮。我不知道如何使用jQuery检测它。我已经有一些代码可以检测文本框中的更改,它会检测单选按钮是否已更改状态,但在清除时它不起作用。这是我的jQuery:
var warnMessage = "You have unsaved changes on this page!";
$(document).ready(function() {
$('input:not(:button,:submit),textarea,select,:disabled').change(function () {
window.onbeforeunload = function () {
if (warnMessage != null) return warnMessage;
}
});
$('input:submit').click(function(e) {
warnMessage = null;
});
});
有没有办法检测页面中是否使用了document.add?
答案 0 :(得分:0)
您应该以这种方式使用.on()
函数(http://api.jquery.com/on/):
var warnMessage = "You have unsaved changes on this page!";
$(document).ready(function() {
$(document).on('change', 'input:not(:button,:submit),textarea,select,:disabled', function () {
window.onbeforeunload = function () {
if (warnMessage != null) return warnMessage;
}
});
$(document).on('click', 'input:submit', function(e) {
warnMessage = null;
});
});
请注意以下事项:
$
选择包含要检测更改/单击的元素的父元素(f.i.整个文档)。只有在.on
函数内,您才能指定这些元素。.on()
仅在jQuery> = 1.7中可用:如果您的版本较低(但大于1.3),则应使用.live()
函数(http://api.jquery.com/live/)。