Zend在提交时形成ajax验证

时间:2011-04-11 11:03:21

标签: ajax zend-framework jquery zend-form

我目前正在尝试使用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);
}

1 个答案:

答案 0 :(得分:1)

您应该在.submit

上返回false或preventDefault
(function() {
    $('#contact').submit(function() {
        doValidation();
        return false;
    }
});