【发布时间】:2012-10-25 07:22:00
【问题描述】:
用于此的 jsfiddle 位于 http://jsfiddle.net/whDm6/18/
如果我取消注释以下代码中的警报、更改表单值并刷新页面,它会显示警报。所以我知道代码正在执行到那时。但是,如果我将 Alert 注释掉,它不会像我期望的那样显示 beforeunload 框。
我尝试过使用 bind 并使用基本的 window.onbeforeunload = function() {} 而不用 Jquery 绑定它,但这些都不起作用。
使用 Jquery 1.8.2
var currentUlValues = {};
currentUlValues['input1'] = "red";
currentUlValues['input2'] = "blue";
needToConfirm = true;
$(window).on('beforeunload', function(){
if (needToConfirm) {
$.each(currentUlValues, function(key, value) {
var elem = $("#"+key).val();
if (typeof elem !== 'undefined') {
if (elem != currentUlValues[key]) {
//alert(elem + " - " + currentUlValues[key]);
return 'Are you sure you want to leave?';
}
}
});
}
});
HTML 表单
<form>
<input id="input1" name="input1" type="text" value="red" />
<input id="input2" name="input2" type="text" value="blue" />
</form>
【问题讨论】:
标签: jquery onbeforeunload