2012-03-02 63 views
0

我将元素ID“btn_submit”分配给write_ok按钮。如果我不按下写按钮,我想显示一条警告

我想以下几点:

如果我按按钮WRITE_OK,
 不写,
否则(如果我不按WRITE_OK按钮)
 页面退出之前做的警报消息。

我不知道如何找出哪个按钮被按下。

我发现了这一点,但我不能得到它的工作:jQuery: how to get which button was clicked upon form submission?

<script type="text/javascript"> 
$(window).bind('beforeunload', function(){ 
    if (#btn_submit was not pressed) 
     return 'If you exit the page, you may lose your changes'; 
}); 
</script> 

回答

1

你可以做这样的事情,

<script type="text/javascript"> 
    var btn_submit_pressed = false; 

    $(window).bind('beforeunload', function(){ 
     if (btn_submit_pressed) 
      return 'If you want to exit page, you may lost your writing'; 
    }); 

    $('#btn_submit').click(function(){ btn_submit_pressed=true; }); 

</script> 
+0

WOW〜!!!大〜!!! '' – OpenCode 2012-03-02 19:12:04

0

你可以引入一个变量:

var isSaved = true; // at the beginning there's nothing unsaved 

每当用户更新的东西,设置:

isSaved = false; 

当用户点击提交时,设置:

isSaved = true; 

然后在beforeunload,只要检查:

if(!isSaved) { 
+0

感谢您的回复。如果我添加变形,我必须做很多工作。 – OpenCode 2012-03-02 18:27:40

+0

@OpenCode:不知道我明白。这应该是相当微不足道的;你不需要添加更多的这4行代码。 – pimvdb 2012-03-02 18:28:33

+0

我只是想这样做,http://stackoverflow.com/questions/5721724/jquery-how-to-get-which-button-was-clicked-upon-form-submission – OpenCode 2012-03-02 18:38:56

0

帕瓦尔的代码是一个大的想法。 来压缩和生成代码,#btn_submit改为“input submit”。

回报消息只出现IE不firefox,chrome。

<script type="text/javascript"> 
    var btn_submit_pressed = true; 
    $(window).bind('beforeunload', function(){ 
    if (btn_submit_pressed) 
     return 'if you leave this page, chages will be lost.'; 
    }); 
    $('#btn_submit').click(function(){ btn_submit_pressed=false; }); 
</script> 
相关问题