Zend在提交时形成ajaxvalidation

我目前正在尝试使用ajax和zendvalidation同时validationzend表单…

让我解释一下,我的表单会弹出一个iframe(fancybox),当提交时,我需要显示一条“谢谢”消息,关闭iframe并重定向用户。 我打算使用ajaxvalidation来关闭fancybox iframe,如果成功的话。

我按照几个教程http://www.zendcasts.com/ajaxify-your-zend_form-validation-with-jquery/2010/04/解释了如何ajaxify你的zend表单来显示textInput上的onblur事件的错误。

一切正常,但是当我在提交按钮上指定click事件时,我的猜测是表单由zend处理并且ajaxvalidation不起作用…你有任何提示还是你看到明显的错误?? 非常感谢…. 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); } 

您应该在.submit上返回false或preventDefault

 (function() { $('#contact').submit(function() { doValidation(); return false; } });