我目前正在尝试同时使用 ajax 和 zend validate 验证 zend 表单...
让我解释一下,我的表单在 iframe(fancybox)中弹出,提交后,我需要显示一条“谢谢”消息,关闭 iframe 并重定向用户。我打算使用ajax验证来关闭fancybox iframe,如果成功的话。
我遵循了几个教程http://www.zendcasts.com/ajaxify-your-zend_form-validation-with-jquery/2010/04/解释如何 ajaxify zend 表单以显示错误,例如文本输入上的 onblur 事件。
一切正常,发现 onblur 或 over 事件,但是当我在提交按钮上指定单击事件时,我的猜测是表单由 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);
}
最佳答案
您应该在 .submit 上返回 false 或 PreventDefault
(function() {
$('#contact').submit(function() {
doValidation();
return false;
}
});
关于ajax - Zend 表单 ajax 提交验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620371/