我在我的網站上使用Js helper的基本ajax表單,它工作正常,但當有驗證錯誤更新回調重複我的成功div內的整個頁面。CakePHP ajax表單更新重複頁面
成功的div:
<div id="success"></div>
提交按鈕:
echo $this->Js->submit('Send', array(
'before'=>$this->Js->get('#sending')->effect('fadeIn'),
'success'=>$this->Js->get('#sending')->effect('fadeOut'),
'update'=>'#success',
'class'=>'btn btn-primary'
));
的Javascript:在我的控制器
$(document).ready(function(){
$('#postkey, #gender, #hair, #location, #message').blur(function(){
$.post(
'/Cake_ajax/Posts/validate_form',
{ field: $(this).attr('id'), value: $(this).val() }
//handleNameValidation
);
});
});
驗證表單功能:
public function validate_form(){
if($this->RequestHandler->isAjax()){
$this->request->data['Post'][$this->request['data']['field']] = $this->request['data']['value'];
$this->Post->set($this->request->data);
if($this->Post->validates()){
$this->autorender = FALSE; // don't render a view
$this->set('error','');
}else{
$this->layout ="ajax";
$this->autoRender = FALSE;
$error = $this->validateErrors($this->Post);
$this->set('error',$this->Post->validationErrors[$this->request['data']['field']][0]);
}
}
}
我不知道這是否足夠的信息繼續下去,如果我需要發佈更多的代碼,請讓我知道。
謝謝。
如果這是一個直接複製粘貼,您是否嘗試將行更改爲'$ this-> autoRender = false'(大寫爲R)?另外,哪個佈局被用作默認值? – 2012-04-27 20:55:44
乾杯!我正在尋找相同問題的解決方案,並且您接受的答案解決了我的問題。 – Fr0zenFyr 2012-07-05 07:15:54
當你遇到你遇到的問題,並且某人遇到了同樣的問題並且解決問題時,這種感覺很棒:)祝你的項目順利。 – 2012-07-05 22:07:28