使用jquery(ajax)验证表单,验证码验证问题

时间:2011-07-21 08:41:25

标签: php ajax zend-framework

我有点坚持使用jquery,ajax和zend框架。我从http://www.zendcasts.com/ajaxify-your-zend_form-validation-with-jquery/2010/04/找到了很好的教程,我做了一些测试并完成了所有工作,问题是每个帖子请求(也是csrf标记)的验证码值变化,如何检查数据表单上的验证而不是验证码字段?

目前我曾想过使用方法isValidPartial()并重新设计表单。

1 个答案:

答案 0 :(得分:0)

我调查了那个教程。文件index.phtml,代码的验证部分

function doValidation(id)
{
    var url = '/index/validateform'
    var data = {};
    $("input").each(function()
    {
        data[$(this).attr('name')] = $(this).val();
    });
    $.post(url,data,function(resp)
    {
        $("#"+id).parent().find('.errors').remove();
        $("#"+id).parent().append(getErrorHtml(resp[id], id));
    },'json');
}

你看,行

$("input").each(function() { ... })

遍历表单输入以从中获取数据(然后将其发送以进行验证)。选择器是“输入”,您需要重写它以使其与验证码元素不匹配。我不知道在应用程序中为表单呈现了什么html,但考虑到表单输入通常具有“id”属性,您可以将选择器更改为“input [id!= captcha_input_id]”,其中'captcha_input_id'是要跳过的输入的ID。