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