我有一個類似類似的解決方案在wiki上 here驗證上cjuidialog模態窗口
張貼,但我無法讓我的預期工作的驗證規則。當我點擊提交按鈕時,模式窗口關閉,如果我沒有填寫所有必填字段,則不會保存任何內容。
任何想法,我在這裏失蹤?我對動作和視圖都進行了ajax驗證。
這裏是我的一些代碼片段:
模型Institution.php
public function actionAddnew() {
$model=new Institution;
// Ajax Validation enabled
$this->performAjaxValidation($model);
$flag=true;
if(isset($_POST['Institution']))
{ $flag=false;
$model->attributes=$_POST['Institution'];
if($model->save()) {
//Return an <option> and select it
echo CHtml::tag('option',array (
'value'=>$model->id,
'selected'=>true
),CHtml::encode($model->name),true);
}
}
if($flag) {
Yii::app()->clientScript->scriptMap['jquery.js'] = false;
$this->renderPartial('createDialog',array('model'=>$model,),false,true);
}
}
文件createDialog.php
<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog',array(
'id'=>'institutionDialog',
'options'=>array(
'title'=>Yii::t('institution','Institution'),
'autoOpen'=>true,
'modal'=>'true',
'width'=>'auto',
'height'=>'auto',
),
));
echo $this->renderPartial('_formDialog', array('model'=>$model)); ?>
<?php $this->endWidget('zii.widgets.jui.CJuiDialog');?>
終於從_formDialog.php
<div class="form" id="institutionDialogForm">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'institution-form',
'enableAjaxValidation'=>true,
));
?>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model,'name'); ?>
<?php echo $form->textField($model,'name',array('size'=>60,'maxlength'=>255)); ?>
<?php echo $form->error($model,'name'); ?>
</div>
....
<div class="row buttons">
<?php echo CHtml::ajaxSubmitButton(Yii::t('institution','Create'),CHtml::normalizeUrl(array('institution/addnew','render'=>false)),array('success'=>'js: function(data) {
$("#User_institutionid").append(data);
$("#institutionDialog").dialog("close");
}'),array('id'=>'closeInstitutionDialog')); ?>
</div>
<?php $this->endWidget(); ?>
</div>
一塊
有什麼想法?在這個例子中,我希望在這裏需要的規則中已經設置了「名稱」。請注意,在gii生成的默認crud文件工作正常。我試圖用模式窗口來實現一個嚮導,以在填充嚮導時添加新的itens。
爲了更清楚一點,我想避免提交模態窗口,以便在模態窗口上點擊提交按鈕之前要求填寫必填字段。
謝謝非常感謝你的幫助。我是新的這種方法,你對我很清楚。謝謝。這解決了我的問題。 – WebDevPT
沒問題,很高興我能幫上忙。 –