Hola a todos.
He estado tratando de validar mi formulario de tal forma que cambie de escenario cuando activo el onclic del un checkbox. He logrado que se cambie de escenario sin enmabrgo no me está mostrando las validaciones de campos oblicatorios que establecen las reglas del modelo (:[
Agradesco cualquer ayuda que me puedan dar.
Esta es mi clase modelo:
public function rules()
{
return [
[['field_pk_fk', 'field1','field2'], 'required','on'=>'On JI'],
[['field_pk_fk', 'field1','field2','field3','field4'], 'required','on'=>'Off JI']
}
el formulario es este:
$form = ActiveForm::begin(['layout'=>'horizontal','id'=>'result-form',
'enableAjaxValidation'=>true,
'enableClientValidation'=>true]); ?>
<?= $form->field($model, 'field1')->checkbox(array('value' => 'Yes', 'uncheck' => 'No')) ?>
<?= $form->field($model, 'field2')->textarea(['maxlength' => 1000]) ?>
<?= $form->field($model, 'field3')->textarea(['maxlength' => 1000]) ?>
<?= $form->field($model, 'field4')->textarea(['maxlength' => 1000]) ?>
esta es mi clase control
public function actionCreate()
{
$model = new Resultado();
$this->performAjaxValidation($model);
if($model->load(Yii::$app->request->post()))
{
if($model->field1 === 'Yes')
{
$model->setScenario ('On JI');
}
else
{
$model->setScenario ('Off JI');
}
}
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->field_pk_fk]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
protected function performAjaxValidation($model)
{
if(isset($_POST['ajax']) && $_POST['ajax']==='result-form')
{
$model->validate();
Yii::app()->end();
}
}