Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать всплывающее окно с функцией alert, но со своим дизайном? 
V
    Опции темы
dimcat
Дата 4.9.2009, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 15.5.2007

Репутация: нет
Всего: нет



Может быть кто-то сталкивался... Насколько я знаю, дизайн окна с сообщением об ошибке изменить нельзя. А можно ли как-то по другому сделать, чтобы выполнялись те же функции? Спасибо за ответы...
PM MAIL   Вверх
Amphiluke
Дата 4.9.2009, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Цитата(dimcat @  4.9.2009,  16:12 Найти цитируемый пост)
чтобы выполнялись те же функции

А какие именно функции вас интересуют? alert примечателен модальностью, и если вам нужна именно модальность окна с сообщением, то, насколько мне известно, это может обеспечить только IE (http://msdn.microsoft.com/en-us/library/ms536759(VS.85).aspx).

В остальных можно ограничиться немодальными всплывающими окнами... пока пользователь не заблокирует их. smile

Добавлено через 2 минуты и 21 секунду
А вообще — абсолютно позиционированные скрытые контейнеры никто не отменял.
PM   Вверх
dimcat
Дата 4.9.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 15.5.2007

Репутация: нет
Всего: нет



Остановился на скрытых контейнерах. Но существует одна проблемко... Когда вызывается alert он возвращает false, который запрещает отправку формы и отменяется по нажатии на кнопку. При использовании контейнера я тоже могу вызвать false при надобности... Но вот как его отменить? Форма то больше не отправляется...

Это сообщение отредактировал(а) dimcat - 4.9.2009, 19:08
PM MAIL   Вверх
brother79
Дата 4.9.2009, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 1
Всего: 6



Цитата(Amphiluke @  4.9.2009,  16:56 Найти цитируемый пост)
А какие именно функции вас интересуют? alert примечателен модальностью, и если вам нужна именно модальность окна с сообщением, то, насколько мне известно, это может обеспечить только IE (http://msdn.microsoft.com/en-us/library/ms536759(VS.85).aspx).

В остальных можно ограничиться немодальными всплывающими окнами... пока пользователь не заблокирует их. smile


Не совсем понял что имелось ввиду, но ничего не мешает положить сверху див прозрачный с position:fixed , а на него див с сообщением, вот и вся модальность. Кнопку надавил на диве, и спрятал прозрачный жив с сообщением. А если надо, чтобы как в винде, чтобы таскалось, да размеры всякие менялись - так есть готовые библиотеки, выбирай по вкусу и цепляй

Добавлено через 2 минуты и 5 секунд
Цитата(dimcat @  4.9.2009,  17:41 Найти цитируемый пост)
Но вот как его отменить? Форма то больше не отправляется...



что-то типа form.submit , т.е. тебе ничего не мешает послать эту форму из любого места руками а не по кнопке, по которой раньше сабмитилось.


--------------------
PM MAIL WWW   Вверх
Amphiluke
Дата 4.9.2009, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Цитата(brother79 @  4.9.2009,  19:45 Найти цитируемый пост)
Не совсем понял что имелось ввиду, но ничего не мешает положить сверху див прозрачный с position:fixed , а на него див с сообщением, вот и вся модальность.

Ну да. alert блокирует вообще действия с окном браузера пока не закроешь его (в смысле сообщение alert). Это и есть модальное окно. В остальном согласен.

Это сообщение отредактировал(а) Amphiluke - 4.9.2009, 20:04
PM   Вверх
dimcat
Дата 4.9.2009, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 15.5.2007

Репутация: нет
Всего: нет



Цитата

что-то типа form.submit , т.е. тебе ничего не мешает послать эту форму из любого места руками а не по кнопке, по которой раньше сабмитилось.


Дак мне надо, чтобы она именно по кнопке отправлялась... Смысл такой: пользователь заполняет поля, жмёт отправить. Если есть ошибки при заполнении, ему они выводятся и форма не отправляется - return false. Но потом, когда он исправит эти ошибки, он должен иметь возможность снова отправить форму по той же самой кнопке сабмит без перезагрузки страницы...
PM MAIL   Вверх
Amphiluke
Дата 4.9.2009, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Что-то я не понимаю, где проблема.
Ну, пусть есть форма
Код

<form action="#" id="myForm" onsubmit="return validateMyFormPlease();">
   ...
   <input type="submit" />
</form>

и div с сообщением
Код

<div id="Hidden_div_with_message" style="display: none;">
   Неправильно заполнены поля... Blah-blah
   <br />
   <input type="button" value="Исправлять бум???" onclick="document.getElementById('Hidden_div_with_message').style.display = 'none';">
</div>



Функция validateMyFormPlease() выполняет следующее:
  •  проверяет правильность заполнения полей формы;
  •  в случае ошибки отображает скрытый div с просьбой исправить;
  •  возвращает false, если есть ошибки, или true, если нет ошибок.
Код

function validateMyFormPlease() {
   /* проверяем поля */
   if (There_are_no_errors_at_all) return true; // ошибок нет — возвращаем true и не идем дальше

   // показываем div с сообщением и отменяем отправку
   document.getElementById("Hidden_div_with_message").style.display = "block";
   return false;
}


Где проблема возникает?

Это сообщение отредактировал(а) Amphiluke - 4.9.2009, 22:26
PM   Вверх
dimcat
Дата 4.9.2009, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 15.5.2007

Репутация: нет
Всего: нет



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

Вроде всё также...

Функция:

Код

function check(user_form) { 
 var n=0;
 if (user_form.f1.value=='0' || user_form.f1.value=='') {document.getElementById('t1').style.display = '';n=1;}
if (n==1) return false; else return true;
}


Сообщение:

Код

<div style='display:none' id=t1>Не корректно заполнены поля</div>


Форма:

Код

<form action='' name="user_form" method="post" onSubmit="return check(this)"></form>


Это сообщение отредактировал(а) dimcat - 4.9.2009, 23:16
PM MAIL   Вверх
Amphiluke
Дата 4.9.2009, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



dimcat, наверное, пока не явится глазам нашим ваш код, ничего более определенного сказать не получится.
PM   Вверх
dimcat
Дата 4.9.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 15.5.2007

Репутация: нет
Всего: нет



Выше показал код... Такой же вроде...
PM MAIL   Вверх
Amphiluke
Дата 4.9.2009, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



У меня ваш код работает. Я для проверки вставил в форму это:
Код

<input type="text" name="f1" id="f1" /><input type="submit" />

Вообще никаких проблем. smile 
PM   Вверх
dimcat
Дата 4.9.2009, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 15.5.2007

Репутация: нет
Всего: нет



Блин, и у меня работает в элементарной форме... Значит где-то косяк... Спасибо за участие, буду искать дальше...

Получается вот что))) Пока пользователь при повторном заполнении не заполнит правильно все поля форма не отправляется совсем)) Как-то негуманно)) Никак не пойму из-за чего это происходит...

Это сообщение отредактировал(а) dimcat - 4.9.2009, 23:57
PM MAIL   Вверх
dimcat
Дата 5.9.2009, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 15.5.2007

Репутация: нет
Всего: нет



Уф. Разобрался. Оказывается всё отправляется, просто при удачной проверке повторно отправленной формы нужно было убирать дивы через скрипт... А я как-то не считал нужным))

Это сообщение отредактировал(а) dimcat - 5.9.2009, 00:26
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1045 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.