2012-03-12 3 views
3

Мне было интересно, какой лучший способ проверить, загрязнена ли страница, если пользователь выбирает для нее переход от нее. Например, есть регистрационная форма, и пользователь вводит всю свою информацию. Затем случайно нажимает на ссылку, чтобы перейти от нее.Как проверить на наличие грязного флага

Я нашел это в Интернете, где он проверяет, загрязнена ли страница, если человек вносит изменения в любые входные значения формы.

<script type="text/javascript"> 
var isDirty = false; 
var msg = 'You haven\'t saved your changes.'; 
$(document).ready(function(){ 
    $(':input').change(function(){ 
     if(!isDirty){ 
      isDirty = true; 
     } 
    }); 
    window.onbeforeunload = function(){ 
     if(isDirty){ 
      return msg; 
     } 
    }; 
}); 
</script> 

Так что это отлично работает. Но как я могу исключить некоторые ссылки, которые всплывают? Есть ли лучший способ сделать это?

+4

Зачем нужно всплывающее окно window.onbeforeunload? Я не думаю, что window.open вызовет разгрузку. http://jsfiddle.net/skram/7d5ZW/3/ –

+0

О, я этого не осознал. Ты прав. Благодарю. Интересное мое решение работало все время. – MindGame

ответ

0

Вы должны добавить onclick прослушиватель событий на этих входах и «вернуть false»; Что-то вроде

$('a.className="popup"').onclick = function(){return false}; 

или

< A HREF = "#" OnClick = "возвращение ложным;" > Текст </a >

Смежные вопросы