Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   модальное окно да/нет как confirm (https://javascript.ru/forum/css-html/45518-modalnoe-okno-da-net-kak-confirm.html)

vladislav.blinov 04.03.2014 08:44

модальное окно да/нет как confirm
 
Добрый день столкнулся с такой задачкой, мне нужно модальное окно как confirm, что бы при выполнении скрипта выплывало моё окошко с кнопками да/нет и скрипт не останавливался и не продолжал обработку, а ждал пока я нажму на да или нет. Т.е. вот моё модальное окно -
$content = '<div id="add_noteCstm" class="ui-dialog" style="display:none;z-index: 1002; position: absolute;"><div><span class="ui-dialog-title">Укажите причину изменения сделки</span></div>';
            $content .= '<div class="editform_form form">';
            $content .= '<table id="editnote">';
            $content .= '<textarea id="text_note" style="margin:10px; width:780px;"></textarea>';
            $content .= '</table>';
            $content .= '<div class="form-toolbar">';
            $content .= '<a id="save_note" class="attachLoading z-button" href="#" onclick="checkPrim();"><span class="z-label">Сохранить</span></a>';
            $content .= '<a href="/details?id='.$this->modelId.'"><span class="z-label">Отмена</span></a>';
            $content .= '</div>';
            $content .= '</div>';
            $content .= '</div>';

и есть функция
function checkPrim(){
jQuery("#add_noteCstm").show();
}

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

danik.js 04.03.2014 08:56

Было:
if (confirm('bla bla')) {
    alert('confirmed');
} else {
    alert('canceled');
}


Стало:

function customConfirm(confirmCallback, cancelCallback) {
    var dialog = $("#add_noteCstm");
    dialog.show();
    $('button.cancel').off('click').on('click', cancelCallback);
    $('button.confirm').off('click').on('click', confirmCallback);
}
customConfirm(function() {
    alert('confirmed');
}, function() {
    alert('canceled');
});


А нафига ты html в строку загнал? Это же офигеть как неудобно? Ты мазохист чели?

vladislav.blinov 04.03.2014 09:12

это пробный сырой вариант, накидал на скорую руку, главное что бы кнопка сохранить правильно отработала.
твой вариант проверил и опять та же проблема
if (confirm('bla bla')) {
    alert('confirmed');
} else {
    alert('canceled');
}

выплывает окно и скрипт ожидает нажатия кнопки да или нет
а в функции
function customConfirm(confirmCallback, cancelCallback) {
    var dialog = $("#add_noteCstm");
    dialog.show();
    $('button.cancel').off('click').on('click', cancelCallback);
    $('button.confirm').off('click').on('click', confirmCallback);
}
customConfirm(function() {
    alert('confirmed');
}, function() {
    alert('canceled');
});

появляется модальное окно, а скрипт не останавливается(((

ksa 04.03.2014 09:24

Цитата:

Сообщение от vladislav.blinov
а вот как заставить его выполнить show и ожидать действие

Такое может только настоящее модальное окно.
Для использования его сурогата нужно менять сам алгоритм.

danik.js 04.03.2014 09:33

Тот же самый вопрос: http://javascript.ru/forum/events/45...zovatelya.html
Чтоб не тратил время, вот ответ на него: http://javascript.ru/forum/events/45...tml#post298689

vladislav.blinov 04.03.2014 09:48

но есть ведь какой то метод что у alert(); что у confirm(); что у promt(); что то типа stop(); только вот какой...

ksa 04.03.2014 09:52

Цитата:

Сообщение от vladislav.blinov
но есть ведь какой то метод что у alert(); что у confirm(); что у promt(); что то типа stop(); только вот какой...

Это браузер своими средствами реализует... Не ХТМЛ разметка. :no:

vladislav.blinov 04.03.2014 10:02

всем спасибо за разъяснения, буду как обычно велосипед лепить))


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