我正在使用cakephp ajax验证在我的网站上联系我们页面但它似乎根本没有工作。联系我们页面使用Blockcontents控制器与动作联系.IT没有给我任何错误,但没有按计划工作。以下是我的validation.js
$(document).ready(function(){
$('#name').blur(function(){
$.post('/blacknovaPHSVN/BlockContents/validate_form',
{ field:$('#name').attr('id'),value:$('#name').val()},
handleNameValidation
);
});
function handleNameValidation(error){
if(error.length >0){
if($('#name-notEmpty').length==0){
$('#name').after('<div id="name-notEmpty" class="error-message">' + error + "</div>");
}
}
else{
$('#name-notEmpty').remove();
}
}
});
以下是我的BlockContents控制器中的代码
public function validate_form(){
if ($this->RequestHandler->isAjax()){
$this->request->data['Contact'][$this->request['data']['field']] = $this->request['data']['value'];
$this->Contact->set($this->request->data);
if($this->Contact->validates()){
$this->autoRender=False;
}
else {
$error= $this->validateErrors($this->Contact());
$this->set('error',$this->Contact->validationErrors[$this->request['data']['field']][0]);
pr($this->request);
// pr($error[$field]);
}
}
}
我还创建了validate_form.ctp以回显错误。我只是想弄清楚什么是错误的
答案 0 :(得分:1)
而不是:$error= $this->validateErrors($this->Contact());
写下这个:$error= $this->validateErrors($this->Contact);
然后检查输出并更改
if ($this->RequestHandler->isAjax())
至if ($this->request->is('ajax'))
。
它可以解决您的问题。