基本上我有一个带有下拉菜单的gridview。规则是: 1.在以下情况下,提示用户在gridview的drowdown中进行更改: a)用户点击分页链接 b)单击其他链接以离开页面 c)关闭浏览器 2.单击保存按钮时不要提示用户
我在这里找到了一些代码http://www.codeproject.com/KB/scripting/WebFormModifedPrompt.aspx 并做了一些修改:
<script type="text/javascript" >
$().ready(function () {
InitialDictionary = new Array();
LoadCurrentValues(InitialDictionary);
function Check() {
if (!CompareDictionaries(InitialDictionary)) {
wind.onbeforeunload = null;
return confirm('Form is modified, Do you want to continue');
}
}
$("a").click(Check)
$(window).bind('beforeunload', function () {
if (!CompareDictionaries(InitialDictionary)) {
return "Form is modified, Do you want to continue";
}
})
$('form').submit(function () { window.onbeforeunload = null; })
})
</script>
我在使用此代码时遇到问题,当我更改下拉列表并单击分页链接时,它首先显示弹出的click功能,然后它会为beforeunload事件触发2次弹出窗口。我该如何解决这个问题?
答案 0 :(得分:0)
一些问题:
wind
是一个错字。应该是window
。})
无与伦比;我认为这也是一个错字document
$(document).ready
[]
代替new Array()
试试这个:
$(document).ready(function() {
InitialDictionary = [];
LoadCurrentValues(InitialDictionary);
function Check() {
if (!CompareDictionaries(InitialDictionary)) {
window.onbeforeunload = null;
return confirm('Form is modified, Do you want to continue');
}
}
$("a").click(Check);
$(window).bind('beforeunload', function() {
if (!CompareDictionaries(InitialDictionary)) {
return "Form is modified, Do you want to continue";
}
})
$('form').submit(function() {
window.onbeforeunload = null;
})
});
另外,我假设你在这里有一些外部功能。此外,除非在其他位置定义InitialDictionary
,否则请务必在前面添加var
。