0

我在我的网站中使用 cakephp ajax 验证来联系我们页面,但它似乎根本不起作用。联系我们页面使用带有操作联系人的 Blockcontents 控制器。它没有给我任何错误,但没有按计划工作。以下是我的验证。 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 来回显错误。我无法弄清楚似乎有什么问题

4

1 回答 1

1

代替:$error= $this->validateErrors($this->Contact());

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

然后检查输出并更改

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

它可能会解决您的问题。

于 2014-05-05T06:03:12.780 回答