Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Альтернативы confirm() (https://javascript.ru/forum/misc/31918-alternativy-confirm.html)

stalker77 26.09.2012 08:03

Альтернативы confirm()
 
Есть ли возможность реализовать полный функционал функции confirm() с возможностью изменения внешнего вида появляющегося окна.

ksa 26.09.2012 08:34

Цитата:

Сообщение от stalker77
Есть ли возможность реализовать полный функционал функции confirm()

В той или иной степени - разумеется есть. :)

stalker77 26.09.2012 10:18

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

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 выполнение функций непоследовательное. Если бы можно было бы настроить последовательность выполнения операций этот плагин меня устроил бы.

Dmitriyff 26.09.2012 10:23

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

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

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

пример

(function () {
  for (i = 0; i < 5; i++) alert(i);
})();

Dmitriyff 26.09.2012 10:25

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

а событие submit запускать если confirm вернет true

stalker77 26.09.2012 12:38

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

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


Часовой пояс GMT +3, время: 04:25.