Показать сообщение отдельно
  #4 (permalink)  
Старый 02.09.2011, 06:40
Новичок на форуме
Отправить личное сообщение для Last1971 Посмотреть профиль Найти все сообщения от Last1971
 
Регистрация: 01.09.2011
Сообщений: 2

Все немного сложнее. Есть таблица:
$('#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);

То все работает как надо, т.е. отправка данных происходит, только в случае согласия пользователя.

Последний раз редактировалось Last1971, 02.09.2011 в 07:14.
Ответить с цитированием