Если я не нажму кнопку записи, я хочу показать предупреждение - PullRequest
0 голосов
/ 02 марта 2012

Я назначаю идентификатор элемента "btn_submit" кнопке write_ok.

Я хотел следующее:

если я нажму кнопку write_ok,
пиши,
иначе (если я не нажму кнопку write_ok)
сделать предупреждение перед выходом страницы.

Я не знаю, как узнать, какая кнопка была нажата.

Я нашел это, но не могу заставить его работать: jQuery: как узнать, какая кнопка была нажата при отправке формы?

<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>

Ответы [ 3 ]

1 голос
/ 02 марта 2012

Вы можете сделать что-то вроде,

<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 голосов
/ 04 марта 2012

Код Павара - большая идея.чтобы сжать и сгенерировать код, #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>
0 голосов
/ 02 марта 2012

Вы можете ввести переменную:

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

Когда пользователь что-то обновляет, установите:

isSaved = false;

Когда пользователь нажимает кнопку «Отправить», установите:

isSaved = true;

Тогда в beforeunload, просто проверьте:

if(!isSaved) {
...