да, вы правы, я нашел способ, который может быть не самым красивым, но, кажется, работает: $. post (url, data, function (resp) {//document.write(resp); console.log (resp); alert (resp); // parent. $. fancybox.close (); $ ('# contact'). submit ();}, "json"); - user698812 11 апреля в 13:01
тоящее время я пытаюсь проверить форму Zend с помощью ajax и Zend validate одновременно ...
Позвольте мне объяснить, мои формы всплывают в iframe (fancybox), и при отправке мне нужно отобразить сообщение «спасибо», закрыть iframe и перенаправить пользователя. Я планировал использовать проверку ajax, чтобы в случае успеха закрыть iframe fancybox.
Я следовал за несколькими урокамиhttp://www.zendcasts.com/ajaxify-your-zend_form-validation-with-jquery/2010/04/ объяснение, как отрегулировать вашу Zend-форму для отображения ошибок, например, событие onblur в текстовом вводе
Все работает, найдите события onblur или over, но когда я указываю событие click на кнопке отправки, я предполагаю, что форма обрабатывается с помощью zend, а проверка ajax не работает ... У вас есть какие-либо подсказки или вы видите явные ошибки? ?? Большое спасибо .... Javascript:
$(function()
{
$('#contact').submit(function()
{
doValidation();
});
});
function doValidation()
{
var url = '/ceramstar/public/contact/validateform';
var data = {};
$("input").each(function(){
data[$(this).attr('name')] = $(this).val();
});
$.post(url,data,function(resp)
{
//document.write(resp);
console.log(resp);
alert(resp);
//parent.$.fancybox.close();
},"json");
}
действие Zend:
public function validateformAction()
{
$this->_helper->viewRenderer->setNoRender();
$this->_helper->layout->disableLayout();
$form = new Form_ContactForm();
$form->isValidPartial($this->_getAllParams());
//print_r($bool);
$json = $form->processAjax($this->getRequest ()->getPost ());
header('Content-type: application/json');
echo Zend_Json::encode($json);
}