потому что так, как работают диалоги jquery, при использовании диалогового окна «подтверждение» вы должны немедленно вернуть false, и если пользователь выберет «ОК», затем инициируйте отправку формы.
Итак, я использую этот код:
function validoForm()
{
//some code here...
if (datosTdcIncompletos==true)
{
var $dialogTDC= $('<div></div>')
.html("TDC information incomplete\n\rDo you want to continue?")
.dialog({
autoOpen: false,
modal:true,
title: 'Confirm',
buttons: {
Ok: function() {$( this ).dialog( "close" ); $('#bookForm').submit();},
Cancel: function() {$( this ).dialog( "close"); return false;}
}
});
$dialogTDC.dialog('open');
return false;
}
$('#bookForm').submit();
}
и
<script type="text/javascript">
$(document).ready(function() {
$('#submitBtn').click(function (){ $('#bookForm').submit();});
var options1 = {
target: '#bookForm',
url: 'http://localhost/include/processForm.php',
type:'post',
beforeSubmit:validoForm,
success: showResponse
};
$('#bookForm').ajaxForm(options1);
});
</script>
Проблема возникает из-за функции кнопки «ОК» (Ok: function() {$( this ).dialog( "close" ); $('#bookForm').submit();},
), потому что она снова отправляет форму, и я получаю ошибку «слишком много рекурсии».
как это сделать?