Zend framework Zend文件输入表单ajax验证
我在使用ajax验证zend表单中的文件输入时遇到了困难,基本上我能够从普通文本输入中获取错误消息,但从来不会从文件输入中获取错误消息,即使硬编码html请求并将其发送到validate函数,可能有问题,但是zend没有验证ajax发送的文件输入,但是使用普通的isvalid(post)方法验证了。我尝试了$.ajax或$post jquery函数,但没有改变任何东西。。。以下是不同的部分: 表格: 观点:Zend framework Zend文件输入表单ajax验证,zend-framework,jquery,zend-form,Zend Framework,Jquery,Zend Form,我在使用ajax验证zend表单中的文件输入时遇到了困难,基本上我能够从普通文本输入中获取错误消息,但从来不会从文件输入中获取错误消息,即使硬编码html请求并将其发送到validate函数,可能有问题,但是zend没有验证ajax发送的文件输入,但是使用普通的isvalid(post)方法验证了。我尝试了$.ajax或$post jquery函数,但没有改变任何东西。。。以下是不同的部分: 表格: 观点: jQuery(document).ready(function() {
jQuery(document).ready(function()
{
$('#send').click(function(event)
{
event.preventDefault();
doValidation();
});
});
function doValidation()
{
var url = '/ceramstar/public/contact/validateform';
var data = {};
$("input").each(function(){
data[$(this).attr('name')] = $(this).val();
});
data[$("#mailbody").attr('name')] = $("#mailbody").val();
$.ajax({
type: 'POST',
url: url,
enctype: 'multipart/form-data',
data: "mailsubject=&MAX_FILE_SIZE=8388608&mailattcht=2012.srt&sendcopy=1&send=Send&mailbody=",
success: function(resp){
alert(resp);
},
dataType: "json"
});
// $.post(url,data,function(resp)
// {
//
// $('#contact').submit();
//
// if (resp == "[]"){
// window.top.location.href='<?php echo $this->baseUrl().'/contact/thankyou';?>';
// parent.$.fancybox.close();
//
//
// }
//
//
//
// },"json");
}
非常感谢您阅读它…您无法使用jQuery/JavaScript从文件输入字段读取,这是由于js安全限制。如果我没记错,从文件输入元素读取的任何内容都将返回一个空字符串 $form->isValidPartial()方法将不执行验证,因为请求参数mailattcht为空 如果这是您的最终意图,那么您也不能通过AJAX执行文件上传 问候 加里类似于
jQuery(document).ready(function()
{
$('#send').click(function(event)
{
event.preventDefault();
doValidation();
});
});
function doValidation()
{
var url = '/ceramstar/public/contact/validateform';
var data = {};
$("input").each(function(){
data[$(this).attr('name')] = $(this).val();
});
data[$("#mailbody").attr('name')] = $("#mailbody").val();
$.ajax({
type: 'POST',
url: url,
enctype: 'multipart/form-data',
data: "mailsubject=&MAX_FILE_SIZE=8388608&mailattcht=2012.srt&sendcopy=1&send=Send&mailbody=",
success: function(resp){
alert(resp);
},
dataType: "json"
});
// $.post(url,data,function(resp)
// {
//
// $('#contact').submit();
//
// if (resp == "[]"){
// window.top.location.href='<?php echo $this->baseUrl().'/contact/thankyou';?>';
// parent.$.fancybox.close();
//
//
// }
//
//
//
// },"json");
}
public function validateformAction()
{
$this->_helper->viewRenderer->setNoRender();
$this->_helper->layout->disableLayout();
$form = new Form_ContactForm();
$form->isValidPartial($this->_getAllParams());
//$form->isValidPartial($_FILES);
$json = $form->processAjax($form->getValues());
header('Content-type: application/json');
echo Zend_Json::encode($json);
}