我尝试使用 ajax 在 ZF3 中进行异步联系表单验证。那是我的联系人控制器
public function contactAction()
{
$form = $this->form;
$request = $this->getRequest();
$response = $this->getResponse();
$vm = new ViewModel(['form' => $this->form]);
$form->setInputFilter(new ContactFormFilter());
if (!$this->getRequest()->isPost())
return new ViewModel(['form' => $this->form]);
$data = $request->getPost();
$form->setData($data);
if (!$form->isValid())
{
$vm->setTerminal(true);
return $response->setContent(\Zend\Json\Json::encode($form->getMessages()));
}
}
下面是带有 jquery 脚本的contact.phtml。
$(function(){
$("#foo").submit(function(event){
event.preventDefault();
$.ajax({
url: '/kontakt',
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
async: true,
data: ($("#foo").serialize()),
success: function (data) {
console.log(data);
alert(data);
},
error: function (data) {
console.log(data);
}
});
})
})
表单具有“foo” id;
问题是,当我提交时,我每次都会收到这样的回复:(来自控制台)
Object
-email :Object
-message :Object
-subject :Object
-personal-data :Object
当我打开例如“消息对象”时,它会向我显示:isEmpty:“字段是必需的”,即使消息字段不为空!
谁能知道我做错了什么?