2013-04-23 40 views
0

我有一個文本框,我希望它離開頁面時未保存的更改顯示一個提醒,除非你點擊提交按鈕。 這很好,除非它仍然提醒你,如果提交按鈕被按下,我真的不知道如何解決它。jQuery提醒卸載,除非點擊保存按鈕

我有2個文件,我Set.js採取的BBcode的行動,我的script.js

的script.js

$(document).ready(function() { 
    var saveClicked = false; 

    $(window).bind('beforeunload', function() { 
     if(y != $("#markItUp").val()) { 
      if(!saveClicked) {   
       return 'You have unsaved changes!'; 
      } 
     } 
    }); 
}); 

Set.js

{ 
    name: 'Save', 
    className:"miu-save", 
    call: function() { 
     $('form#edit').submit(); 
     saveClicked = true; 
    } 
}, 

回答

2

改變這種

{ 
    name: 'Save', 
    className:"miu-save", 
    call: function() { 
     $('form#edit').submit(); 
     saveClicked = true; 
    } 
}, 

{ 
    name: 'Save', 
    className:"miu-save", 
    call: function() { 
     saveClicked = true; // true is called first here if you notice and then submit 
     $('form#edit').submit(); 
    } 
}, 

而且是必要

var saveClicked = false; 
$(document).ready(function(){ 

申報你saveClicked的的document.ready功能外VAR

+0

好吧謝謝,我會試試這個:) – 2013-04-25 06:28:19

+0

這很好:)謝謝! – 2013-04-25 06:41:58

0

我不確定這會起作用,但也許如果你開始做

saveClicked = true; 

$('form#edit').submit(); 

,會做的伎倆。

+0

我不知道我得到你的意思 – 2013-04-23 10:59:29

1

把你的saveClicked排除在document.ready的一邊。這樣它將是全球性的,然後只有一個可以將其值設爲truefalse

所以你的腳本應該是這樣的:

var saveClicked = false; 
    $(document).ready(function(){ 

$(window).bind('beforeunload', function(){ 
    if(y != $("#markItUp").val()){ 
    if(!saveClicked){   
    return 'You have unsaved changes!'; 
    }} 
}); 
}); 
+0

哦好謝謝:) – 2013-04-23 10:53:32

+0

不,這並沒有爲我工作:( – 2013-04-23 10:59:01

+0

你能提供的網上鍊接,這可以檢查? – gaurav 2013-04-23 12:25:37