ASD*_*ASD 13 jquery user-interface dialog
如何在单击提交按钮时阻止调用onbeforeunload?
$(document).ready(function()
{
$('input:text,input:checkbox,input:radio,textarea,select').one('change', function()
{
//('BODY').attr('onbeforeunload',"return 'Leaving this page will cause any unsaved data to be lost.';");
if(
window.onbeforeunload = function() { return 'You have unsaved changes!'; }
});
});
Run Code Online (Sandbox Code Playgroud)
您不能阻止调用unbeforeunload,但使用全局标志变量,您可以控制它是否显示警告.
在文档中,添加脚本:
warn_on_unload = "You have unsaved changes!"
Run Code Online (Sandbox Code Playgroud)
在提交事件中,添加:
warn_on_unload = "";
Run Code Online (Sandbox Code Playgroud)
事件的定义,改为:
window.onbeforeunload = function() { return warn_on_unload; }
Run Code Online (Sandbox Code Playgroud)
通过warn_on_unload,您现在可以随意打开或关闭警告消息.
这是最终的代码:
$(document).ready(function()
{
var warn_on_unload="";
$('input:text,input:checkbox,input:radio,textarea,select').one('change', function()
{
warn_on_unload = "Leaving this page will cause any unsaved data to be lost.";
$('#submit').click(function(e) {
warn_on_unload = "";});
window.onbeforeunload = function() {
if(warn_on_unload != ''){
return warn_on_unload;
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用.on()onbeforeunload 进行绑定,然后.off()在表单提交时使用它来解除绑定,简短而甜蜜
$(document).ready(function () {
$(window).on('beforeunload', function(){
return "You have unsaved changes!";
});
$(document).on("submit", "form", function(event){
$(window).off('beforeunload');
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17150 次 |
| 最近记录: |