Yiiクライアント検証を使用して入力の一部を検証し、ユーザー入力にエラーがある場合、Yiiクライアント検証は送信を妨げず、ajax要求を防ぎません。 私はグリッドウィジェット「carvw-grid」を使用し、ユーザがサブミットボタンをクリックすると、結果を「carvw-grid」コンテンツに更新するようリクエストします。クライアントの検証エラーが発生したときに、サブミットとAjaxリクエストを防ぎたい。ここクライアントの検証エラーでサブミットとAjaxリクエストが妨げられない
は私のスクリプトコードです:
Yii::app()->clientScript->registerScript('search', "
$('.search-button').click(function(){
$('.myloading').show();
$('.myshow').hide();
$('.myresult').slideUp().delay(3000).queue(function() {
$(this).show();
$('.myloading').hide();
$('.myloading').addClass('myshow');
});
});
$('.search-form form').submit(function(){
$.fn.yiiGridView.update('carvw-grid', {
data: $(this).serialize()
});
return false;
});
");
、ここでは私のフォーム
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'carvw-form',
'action'=>Yii::app()->createUrl($this->route),
'method'=>'get',
'enableAjaxValidation'=>false,
'enableClientValidation'=>true,
'focus'=>array($model,'OWNER_ID'),
'clientOptions' => array('validateOnSubmit'=>true, 'validateOnType'=>true),
)); ?>
、ここでは私のボタン
<div class="row buttons">
<?php echo CHtml::submitButton('search',array('class'=>'search-button')); ?>
</div>
、ここでの提出である私のグリッドは
されます<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'carvw-grid',
'dataProvider'=>$model->search(),
'columns'=>array('CAR_COMPANY_NAME','MODEL_YEAR',
'CAR_COLOR_NAME',
'USING_TYPE_NAME',array(
'class'=>'CButtonColumn',
),
),
));
?>
クライアントの認証エラーに対するサブミットおよびAjaxリクエストを防止するにはどうすればよいですか?
私はYiiのに触れたことがありませんが、私はライン '「enableAjaxValidation」を疑問視する方法オフベースだろう=> false、 '? – Rick
私はajax検証を使用しませんでした。私はクライアント検証のみを使用しました.Ajax要求は検索結果を取得するために使用されました。 – diaaf
'$ form-> error($ model、 'field')'を呼びますか? http://www.yiiframework.com/doc/api/1.1/CActiveForm#c5223 –