Все немного сложнее. Есть таблица:
$('#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);
То все работает как надо, т.е. отправка данных происходит, только в случае согласия пользователя.