Как сделать действительно модальный UI Dialog?
Вешаем модальный диалог на #someconfirmdialog, но Следующтий код вешает браузер. а) почему? б) что можно придумать взамен
$('#someconfirmdialog').dialog('open'); while ($('#someconfirmdialog').dialog('isOpen')); Суть в том что бы последующий код не выполнялся, пока пользователь не сделал выбор в диалоге, а если еще глубже это вызывается внутри beforSubmit при редактировании таблицы jqgrid. |
Ответ очевиден: нужно сделать по-нормальному!
Если это связано с сабмитом формы, значит при вызове submit ничего не отправляем, вызываем диалог, а он уже вызывает или не вызывает submit. |
Цитата:
Цитата:
|
Все немного сложнее. Есть таблица:
$('#sometable').jqGrid(...); Есть форма добавления записей в таблицу: $("#sometable").jqGrid("navGrid","#somepager",{...}, {width:420,afterSubmit:processAddEdit,closeOnEscape:true,closeAfterEdit:true,afterShowForm : datep ,beforeSubmit:checkSum}, ...); Ну и задача, проверить введенные данные на предмет что такие уже есть в базе, т.е. это возможно, иначе просто бы сделал уникальный ключ, но чаще просто бывает ошибкой. И если данные совпали то выдать модальный диалог, продолжаем "да" "нет"? Т.е. вызывается следующая функция: function checkSum(postdata, formid){ var a=$.ajax({async:false, url:"checksum.php", data{date:postdata.date,sum:postdata.sum,supplier:postdata.supplier}, dataType:'text'}); if (a.responseText=='netutut') checkFlag=true; else { $( "#somedialog" ).html('Number='+a.responseText); $( "#somedialog" ).dialog('open'); } // while ($( "#somedialog" ).dialog('isOpen')) {} return [checkFlag,'!!!']; } Но! Происходит добавление записи на фоне висящего модального диалога, а если раскоментировать while, то получаем бесконечный цикл. И вот в каком месте тут перехватить отправку данных на сервер я пока не понимаю. Но если заменить вызов диалога на checkFlag=confirm('Number='+a.responseText); То все работает как надо, т.е. отправка данных происходит, только в случае согласия пользователя. |
Часовой пояс GMT +3, время: 02:32. |