cakephp Ajax表单验证不起作用

时间:2013-05-28 15:27:53

标签: jquery cakephp-2.0

我正在使用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以回显错误。我只是想弄清楚什么是错误的

1 个答案:

答案 0 :(得分:1)

而不是:$error= $this->validateErrors($this->Contact());

写下这个:$error= $this->validateErrors($this->Contact);

然后检查输出并更改

if ($this->RequestHandler->isAjax())if ($this->request->is('ajax'))

它可以解决您的问题。