Родитель форма:Yii2: Не могу добавить поля формы динамически в Yii2
<div class="container">
<div class="row">
<div class="col-md-9 col-sm-6 col-xs-9">
<div class="panel panel-primary">
<div class="panel-heading clearfix">
<i class="icon-calendar"></i>
<h3 class="panel-title">Kid 1 Details</h3>
</div>
<div class="panel-body">
<div class="form-group">
<label class="col-md-2 control-label">Kid 1 Name</label>
<div class="col-md-10">
<?= $form->field($model, 'k1_name')->label(false)->textInput(['maxlength' => true,'name' => 'k[1].name']) ?>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Gender</label>
<label class="radio-inline">
<?php $list = ['Male' => 'Male', 'Female' => 'Female'];
echo $form->field($model, 'gender_k1')->label(false)->radioList($list, ['inline'=>true,'name' => 'k[1].gender']);
?>
</label>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Age</label>
<div class="col-md-10">
<?php echo $form->field($model, 'k1_age')->label(false)->textInput(['maxlength' => true,'placeholder'=>'Enter age...','name' => 'k[1].age']); ?>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Relation</label>
<div class="col-md-10">
<?= $form->field($model, 'relation_k1')->label(false)->textInput(['maxlength' => true,'placeholder'=>'Relation With Primary','name' => 'k[1].relation']) ?>
</div>
</div>
<div class="col-xs-1">
<button type="button" class="btn btn-default addButton"><i class="fa fa-plus"></i></button>
</div>
</div>
</div>
</div>
</div>
</div>
Шаблон для клонирования родительских полей с изменением числа индекса
<div class="form-group hide" id="kidsTemplate">
<div class="container">
<div class="row">
<div class="col-md-9 col-sm-6 col-xs-9">
<div class="panel panel-primary">
<div class="panel-heading clearfix">
<i class="icon-calendar"></i>
<h3 class="panel-title">Kid 1 Details</h3>
</div>
<div class="panel-body">
<div class="form-group">
<label class="col-md-2 control-label">Kid 1 Name</label>
<div class="col-md-10">
<?= $form->field($model, 'k1_name')->label(false)->textInput(['maxlength' => true,'name' => 'name']) ?>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Gender</label>
<label class="radio-inline">
<?php $list = ['Male' => 'Male', 'Female' => 'Female'];
echo $form->field($model, 'gender_k1')->label(false)->radioList($list, ['inline'=>true,'name' => 'gender']);?>
</label>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Age</label>
<div class="col-md-10">
<?php echo $form->field($model, 'k1_age')->label(false)->textInput(['maxlength' => true,'placeholder'=>'Enter age...','name' => 'age']); ?>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Relation</label>
<div class="col-md-10">
<?= $form->field($model, 'relation_k1')->label(false)->textInput(['maxlength' => true,'placeholder'=>'Relation With Primary','name' => 'relation']) ?>
</div>
</div>
<div class="col-xs-1">
<button type="button" class="btn btn-default removeButton"><i class="fa fa-minus"></i></button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Сценарий:
<script>
$(document).ready(function()
{
kidsIndex = 1;
// Add button click handler
.on('click', '.addButton', function()
{
kidsIndex++;
var $template = $('#kidsTemplate'),
$clone = $template
.clone()
.removeClass('hide')
.removeAttr('id')
.attr('data-k-index', kidsIndex)
.insertBefore($template);
// Update the name attributes
$clone
.find('[name="name"]').attr('name', 'k[' + kidsIndex + '].name').end()
.find('[name="gender"]').attr('name', 'k[' + kidsIndex + '].gender').end()
.find('[name="age"]').attr('name', 'k[' + kidsIndex + '].age').end()
.find('[name="relation"]').attr('name', 'k[' + kidsIndex + '].relation').end();
})
// Remove button click handler
.on('click', '.removeButton', function() {
var $row = $(this).parents('.form-group'),
index = $row.attr('data-k-index');
// Remove element containing the fields
$row.remove();
});
});
</script>
Мне нужно добавить поля формы детей с изменением номера индекса в качестве малыша 1, 2, 3 ... Я добавил кнопку, чтобы добавить поле в родительскую форму, а также кнопку для удаления полей в шаблоне. Попытка реализовать что-то вроде этого: http://formvalidation.io/examples/adding-dynamic-field/#adding-fields-with-different-names