我目前正在尝试使用ajax和zend验证同时验证zend表单...
让我解释一下,我的表单会在iframe(fancybox)中弹出,在提交时,我需要显示“谢谢”消息,关闭iframe并重定向用户。如果成功,我打算使用ajax验证来关闭fancybox iframe。
我按照几个教程http://www.zendcasts.com/ajaxify-your-zend_form-validation-with-jquery/2010/04/解释了如何ajaxify你的zend表单,以便在textinput上显示onblur事件的错误。
所有工作都可以找到onblur或者事件,但是当我在提交按钮上指定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);
}
答案 0 :(得分:1)
您应该在.submit
上返回false或preventDefault(function() {
$('#contact').submit(function() {
doValidation();
return false;
}
});