Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.10.2011, 06:14
Интересующийся
Отправить личное сообщение для rootv Посмотреть профиль Найти все сообщения от rootv
 
Регистрация: 13.10.2011
Сообщений: 25

Отмена закрытия страницы пользователем
(В этом деле - новичек)
Кратко - зачем: на странице заполнена форма, но не сохранена... случайное нажатие ссылки - форма потеряна. Нужно предупреждение и подтверждение пользователя на уход со страницы...

Из найденного
Цитата:
<body onbeforeunload="return ('Все данные которые вы ввели будут потеряны')"></body>
и для jquery
Цитата:
<script>window.onbeforeunload = function () {return (is_data_changed ? "Измененные данные не сохранены. Закрыть страницу?" : null);}</script>
как-то работают, но только не в Опере(!)

Другой вариант, которым забит весь интернет (тоже для jquery) основан на
Цитата:
$("YourForm").FormNavigate("YourMessage");
- не работает... и выдает ошибку
Цитата:
$("YourForm").FormNavigate is not a function
В чем ошибка?
Ответить с цитированием
  #2 (permalink)  
Старый 31.10.2011, 08:19
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

проблема в селекторе YourForm - такого селектора не бывает
зато может быть к примеру #YourForm
#-значит ищем элемент по id

<form id="YourForm">
</form>

<script>
        $("#YourForm").FormNavigate("message");
</script>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 31.10.2011 в 08:21.
Ответить с цитированием
  #3 (permalink)  
Старый 31.10.2011, 10:52
Интересующийся
Отправить личное сообщение для rootv Посмотреть профиль Найти все сообщения от rootv
 
Регистрация: 13.10.2011
Сообщений: 25

Вроде так и делал
Цитата:
<script>$(document).ready(function(){ $("#kv").FormNavigate({ message: "Содержимое было изменено!\nВы уверены, что хотите покинуть страницу без сохранения?" }); });</script>

<form name="kv" id="kv" method="POST" action="">
<input type="text" name="1" value="1">
</form>
Ответить с цитированием
  #4 (permalink)  
Старый 31.10.2011, 11:07
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

rootv, вот посмотри такой вариант...
http://jquery-docs.ru/Events/unload/#fn
Ответить с цитированием
  #5 (permalink)  
Старый 31.10.2011, 12:15
Интересующийся
Отправить личное сообщение для rootv Посмотреть профиль Найти все сообщения от rootv
 
Регистрация: 13.10.2011
Сообщений: 25

Сообщение от ksa Посмотреть сообщение
rootv, вот посмотри такой вариант...
http://jquery-docs.ru/Events/unload/#fn
Это для меня не понятно, но что-то мне подсказывает, что это то же самое, что вставить обработчик с алертом для unload прямо в BODI.
- Сообщение-то выскакивать будет, но страница с формой исчезнет...
Ответить с цитированием
  #6 (permalink)  
Старый 31.10.2011, 15:34
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Сообщение от rootv
$("YourForm").FormNavigate is not a function
В чем ошибка?
Это означает что он не знает такую функцию как "FormNavigate". Возможно для этого требуется плагин.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #7 (permalink)  
Старый 31.10.2011, 16:40
Интересующийся
Отправить личное сообщение для rootv Посмотреть профиль Найти все сообщения от rootv
 
Регистрация: 13.10.2011
Сообщений: 25

Цитата:
Возможно для этого требуется плагин.
Если можно - два слова про плагин - что это за зверь и где его искать?
То, что я накопал, это -
Цитата:
<script>$(document).ready(function(){ $("#kv").FormNavigate({ message: "Содержимое было изменено!\nВы уверены, что хотите покинуть страницу без сохранения?" }); });</script>
и говорится, что достаточно скачать и подключить jquery и все будет работать (действительно, другие примерчики - работают)
Ответить с цитированием
  #8 (permalink)  
Старый 31.10.2011, 17:03
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Отсюда качаете плагин и подключаете на страницу после Jquery
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #9 (permalink)  
Старый 01.11.2011, 00:32
Интересующийся
Отправить личное сообщение для rootv Посмотреть профиль Найти все сообщения от rootv
 
Регистрация: 13.10.2011
Сообщений: 25

Спасибо. А я думал плагин - это заплатка на браузер...

Подключал только jquery.
теперь загрузил и добавил
<script type="text/javascript" src="jquery.FormNavigate-min.js"></script>

1. Старой ошибки не выдает.
2. В Опере - никакой реакции
3. В IE и хроме - вместо сообщения выдает [object Object]
4. В FF спрашивает как положено о желании выйти, но никакого сообщения вообще ни выводит (правда и раньше не выводила)

Вот что работает 100% даже в Опере, так это -

<script>$(document).ready(function(){
$("a").click(function(){
alert("Побудьте еще!");
return false;
});
});
</script>

Но это только для переходов по ссылке...

Буду искать решение дальше...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выводить часть элементов страницы через javascript Victim Events/DOM/Window 9 28.12.2011 22:51
условие определенной страницы jQuery makingpretty jQuery 0 22.06.2011 11:17
Загрузить элементы документа с другой страницы alexrussia Events/DOM/Window 10 25.03.2011 10:17
Создание htm страницы пользователем. Julia Panatova Общие вопросы Javascript 3 09.01.2011 18:44
Вычисление высоты страницы. keysi_ Events/DOM/Window 2 03.08.2010 18:03