Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.09.2012, 08:03
Интересующийся
Отправить личное сообщение для stalker77 Посмотреть профиль Найти все сообщения от stalker77
 
Регистрация: 31.08.2011
Сообщений: 16

Альтернативы confirm()
Есть ли возможность реализовать полный функционал функции confirm() с возможностью изменения внешнего вида появляющегося окна.
Ответить с цитированием
  #2 (permalink)  
Старый 26.09.2012, 08:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,134

Сообщение от stalker77
Есть ли возможность реализовать полный функционал функции confirm()
В той или иной степени - разумеется есть.
Ответить с цитированием
  #3 (permalink)  
Старый 26.09.2012, 10:18
Интересующийся
Отправить личное сообщение для stalker77 Посмотреть профиль Найти все сообщения от stalker77
 
Регистрация: 31.08.2011
Сообщений: 16

Полный функционал в той или иной степени? Мне нужно полное соответствие видимо насколько я понимаю свою задачу.

confirm() использую при вызове метода onsubmit()
В упрощенном виде это выглядит так:

<form action="index.php" method="post" onsubmit="return func();"

<script> function func(){ return confirm(); } <script>

Т.е. задача: остановить выполнение submit, при желании пользователя или выполнить его.

Попробовал использовать плагин noty:
function func()
{
var a=1;

noty({
text: "...",
type: 'confirm',
buttons: [
{ text: 'Сохранить', click: function($noty) { a=2; $noty.close(); } },
{ text: 'Отмена', click: function($noty) { $noty.close(); } }
],
});
}

if(a==2)
return true;
else
return false;
}


Но проблема в том , что код написаный после вызова окна выполняется ранее его появления . Т.е. до появления окна выполнится
if(a==2)
return true;
else
return false;
и соответственно, submit не при каком выборе кнопки не выполнится.
т.е. при использовании плагина noty выполнение функций непоследовательное. Если бы можно было бы настроить последовательность выполнения операций этот плагин меня устроил бы.
Ответить с цитированием
  #4 (permalink)  
Старый 26.09.2012, 10:23
Профессор
Отправить личное сообщение для Dmitriyff Посмотреть профиль Найти все сообщения от Dmitriyff
 
Регистрация: 22.07.2012
Сообщений: 164

https://www.google.ru/#https://www.google.ru/blank.html

только основная масса, если не все, при отображении диалогового окна не блокируют выполнение скрипта

alert, confirm, prompt - блокируют выполнение скрипта

пример

(function () {
  for (i = 0; i < 5; i++) alert(i);
})();
Ответить с цитированием
  #5 (permalink)  
Старый 26.09.2012, 10:25
Профессор
Отправить личное сообщение для Dmitriyff Посмотреть профиль Найти все сообщения от Dmitriyff
 
Регистрация: 22.07.2012
Сообщений: 164

попробуйте изменить проблему, не вешать событие confirm на submit

а событие submit запускать если confirm вернет true
Ответить с цитированием
  #6 (permalink)  
Старый 26.09.2012, 12:38
Интересующийся
Отправить личное сообщение для stalker77 Посмотреть профиль Найти все сообщения от stalker77
 
Регистрация: 31.08.2011
Сообщений: 16

Да, дело именно в том, что альтернативный метод не блокирует выполнение скрипта на время своего действия.

Попробую сделать предложенным Вами методом.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Confirm несколько раз. prowoke jQuery 3 05.09.2012 17:14
Проблема с Confirm, jQuery animate в Chrome dimonrus66 jQuery 4 08.10.2011 16:54
confirm, остановка setInterval псевдочеловек Общие вопросы Javascript 5 03.07.2011 14:15
замена функции confirm mrWong Общие вопросы Javascript 1 02.08.2010 23:26
В окне confirm установить фокус на кнопке "Отмена". Natali Элементы интерфейса 2 01.09.2009 10:50