当我填写第一个动态表单的所有字段时,添加一个新的字段,所有字段都用前一个表单的值填写。如何创建空的新表格? 我试图在控制器中更改此行
'modelsEduForm' => (empty($modelsEduForm)) ? [new EduForm] : $modelsEduForm,
到
'modelsEduForm' => [new EduForm],
但这没有帮助。
答案 0 :(得分:0)
public function actionIndex()
{
$modelsEduForms = [new EduForm()];
for($i = 1; $i < 3; $i++) {
$modelsEduForms[] = new EduForm();
}
if (Model::loadMultiple($modelsEduForms, Yii::$app->request->post()) && Model::validateMultiple($modelsEduForms)) {
foreach ($modelsEduForms as $modelsEduForm) {
$modelsEduForm->save(false);
}
return $this->redirect('index');
}
return $this->render('index', ['modelsEduForms' => $modelsEduForms]);
}
答案 1 :(得分:0)
我确信这不是动态表单的默认行为,如demo所示,但是有一个名为afterInsert
的事件会在每次插入新行时触发。可以使用该事件从新添加的行中删除值,请参见下文
$js=<<< JS
$(".dynamicform_wrapper").on("afterInsert", function(e, item) {
$(item).find('input,textarea,select').each(function(index,element){
$(element).val('');
});
});
JS;
$this->registerJs($js, \yii\web\View::POS_READY);