我在yii2工作,我使用wbraganca的动态表单在添加按钮点击时添加新的表单元素。每次单击此按钮时,我都需要重新运行js脚本。
这是php:
ColdFusion 11 Add-on Services
这是脚本,它根据条件进行一些计算并显示/隐藏一些字段:
<?php
use yii\helpers\Html;
use kartik\widgets\ActiveForm;
use yii\helpers\ArrayHelper;
use backend\models\Chofer;
use backend\models\Ayudante;
use backend\models\ViajeGlp;
use backend\models\CarroGlp;
use dosamigos\datepicker\DatePicker;
use dosamigos\datepicker\DateRangePicker;
use kartik\select2\Select2;
use wbraganca\dynamicform\DynamicFormWidget;
/* @var $this yii\web\View */
/* @var $model backend\models\HrutaDistribucion */
/* @var $form yii\widgets\ActiveForm */
?>
</div>
<div class="hruta-glp-form">
<div class="panel panel-default">
<div class="panel-body">
<?php $form = ActiveForm::begin(['id' => 'dynamic-form',
'type'=>ActiveForm::TYPE_HORIZONTAL,
'formConfig'=>['labelSpan'=>3, 'deviceSize'=>ActiveForm::SIZE_SMALL],
]); ?>
<div class="form-group kv-fieldset-inline">
<?= Html::activeLabel($model, 'HojaRuta', [
'label'=>'H. Ruta',
'class'=>'col-sm-3 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($model, 'HojaRuta',[
'showLabels'=>false
])->textInput(['placeholder'=>'H. Ruta']); ?>
</div>
<?= Html::activeLabel($model, 'Carro', [
'label'=>'Carro',
'class'=>'col-sm-2 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($model, 'Carro_GLPCarroID',['showLabels'=>false])->widget(Select2::classname(), [
'data' => ArrayHelper::map(CarroGlp::find()->all(),'CarroGLPID','NOperacional'),
'language' => 'es',
'options' => ['placeholder' => 'Seleccione ...'],
'pluginOptions' => [
'allowClear' => true
],
]);?>
</div>
<?= Html::activeLabel($model, 'Chofer', [
'label'=>'Chofer',
'class'=>'col-sm-3 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($model, 'ChoferChofer_ID', [
'showLabels'=>false
])->widget(Select2::classname(), [
'data' => ArrayHelper::map(Chofer::find()->all(),'Chofer_ID','Nombre'),
'language' => 'es',
'options' => ['placeholder' => 'Seleccione...'],
'pluginOptions' => [
'allowClear' => true
],
]);?>
</div>
<?= Html::activeLabel($model, 'Fecha', [
'label'=>'Fecha',
'class'=>'col-sm-2 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($model, 'Fecha', ['showLabels'=>false])->widget(
DatePicker::className(), [
'language' => 'es',
// inline too, not bad
// 'inline' => false,
// modify template for custom rendering
// 'template' => '<div class="well well-sm" style="background-color: #fff; width:250px">{input}</div>',
'clientOptions' => [
'label'=>false,
'todayHighlight' => true,
'autoclose' => true,
'format' => 'yyyy-m-d'
]
]);?>
</div>
<?= Html::activeLabel($model, 'FechaEmision', [
'label'=>'Fecha Emision',
'class'=>'col-sm-3 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($model, 'FechaEmision', ['showLabels'=>false])->widget(
DatePicker::className(), [
'language' => 'es',
// inline too, not bad
// 'inline' => false,
// modify template for custom rendering
// 'template' => '<div class="well well-sm" style="background-color: #fff; width:250px">{input}</div>',
'clientOptions' => [
'label'=>false,
'todayHighlight' => true,
'autoclose' => true,
'format' => 'yyyy-m-d'
]
]);?>
</div>
<?= Html::activeLabel($model, 'Ayudante', [
'label'=>'Ayudante',
'class'=>'col-sm-2 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($model, 'AyudanteAyudante_ID', ['showLabels'=>false])->widget(Select2::classname(), [
'data' => ArrayHelper::map(Ayudante::find()->all(),'Ayudante_ID','Nombre'),
'language' => 'es',
'options' => ['placeholder' => 'Seleccione ...'],
'pluginOptions' => [
'allowClear' => true
],
]);?>
</div>
<div class="col-sm-1" > <button type="button" id="agregar" class="add-item btn btn-success btn-xs glyphicon glyphicon-plus"></button></div>
<div id = "ayudante1" style="display: none">
<?= Html::activeLabel($model, 'Ayudante', [
'label'=>'Ayudante (2)',
'class'=>'col-sm-8 control-label',
]) ?>
<div class=" col-sm-3" >
<?= $form->field($model, 'Ayudante1Ayudante_ID', [
'showLabels'=>false
])->widget(Select2::classname(), [
'data' => ArrayHelper::map(Ayudante::find()->all(),'Ayudante_ID','Nombre'),
'language' => 'es',
'options' => ['placeholder' => 'Seleccione...'],
'pluginOptions' => [
'allowClear' => true
],
]);?>
</div>
</div>
</div>
<hr>
<div class="row">
<div class="panel panel-default">
<div class="panel-heading"><h4><i class="glyphicon glyphicon-oil"></i> Viajes</h4></div>
<div class="panel-body">
<?php DynamicFormWidget::begin([
'widgetContainer' => 'dynamicform_wrapper', // required: only alphanumeric characters plus "_" [A-Za-z0-9_]
'widgetBody' => '.container-items', // required: css class selector
'widgetItem' => '.item', // required: css class
'limit' => 20, // the maximum times, an element can be cloned (default 999)
'min' => 1, // 0 or 1 (default 1)
'insertButton' => '.add-item', // css class
'deleteButton' => '.remove-item', // css class
'model' => $modelsViajeGlp[0],
'formId' => 'dynamic-form',
'formFields' => [
'Viajes',
'Entregas',
'Destino',
],
]); ?>
<div class="container-items"><!-- widgetContainer -->
<?php foreach ($modelsViajeGlp as $i => $modelViajeGlp): ?>
<div class="item panel panel-default"><!-- widgetBody -->
<div class="panel-heading">
<h3 class="panel-title pull-left">Viaje</h3>
<div class="pull-right">
<button type="button" class="add-item btn btn-success btn-xs"><i class="glyphicon glyphicon-plus"></i></button>
<button type="button" class="remove-item btn btn-danger btn-xs"><i class="glyphicon glyphicon-minus"></i></button>
</div>
<div class="clearfix"></div>
</div>
<div class="panel-body">
<?php
// necessary for update action.
if (! $modelViajeGlp->isNewRecord) {
echo Html::activeHiddenInput($modelViajeGlp, "[{$i}]ViajeGlp_ID");
}
?>
<div id="showHideDiv1" style="display:block">
<?= Html::activeLabel($modelViajeGlp, 'Viajes', [
'label'=>'Cant. Viajes',
'class'=>'col-sm-2 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($modelViajeGlp, "[{$i}]Viajes",[
'showLabels'=>false
])->textInput(['placeholder'=>'Viajes']); ?>
</div>
</div>
<?= Html::activeLabel($modelViajeGlp, 'Destino', [
'label'=>'Destino',
'class'=>'col-sm-1 control-label'
]) ?>
<div class=" col-sm-6">
<?= $form->field($modelViajeGlp, "[{$i}]Destino",[
'showLabels'=>false
])->textInput(['placeholder'=>'Destino']); ?>
</div>
<?= Html::activeLabel($modelViajeGlp, 'Sector', [
'label'=>'Sector',
'class'=>'col-sm-2 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($modelViajeGlp, "[{$i}]Sector", ['showLabels'=>false])->dropDownList([
'Estatal' => 'Estatal', 'Población' => 'Población', ], ['prompt' => 'Seleccionar'])
?>
</div>
<?= Html::activeLabel($modelViajeGlp, 'KMRecorridos', [
'label'=>'KM Recorridos',
'class'=>'col-sm-3 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($modelViajeGlp, "[{$i}]KMRecorridos",[
'showLabels'=>false
])->textInput(['placeholder'=>'KMRecorridos', 'id'=>'kms']); ?>
</div>
<?= Html::activeLabel($modelViajeGlp, 'Cant_Cilindros10', [
'label'=>'Cilindros 10',
'class'=>'col-sm-2 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($modelViajeGlp, "[{$i}]Cant_Cilindros10",[
'showLabels'=>false
])->textInput(['placeholder'=>'Cilindros10']); ?>
</div>
<?= Html::activeLabel($modelViajeGlp, 'Cant_Cilindros45', [
'label'=>'Cilindros 45',
'class'=>'col-sm-3 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($modelViajeGlp, "[{$i}]Cant_Cilindros45",[
'showLabels'=>false
])->textInput(['placeholder'=>'Cant_Cilindros45']); ?>
</div>
<?= Html::activeLabel($modelViajeGlp, 'Cant_Manip', [
'label'=>'Manipulaciones',
'class'=>'col-sm-2 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($modelViajeGlp, "[{$i}]Cant_Manip",[
'showLabels'=>false
])->textInput(['placeholder'=>'Cant_Manip']); ?>
</div>
<?= Html::activeLabel($modelViajeGlp, 'Estado', [
'label'=>'Estado',
'class'=>'col-sm-3 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($modelViajeGlp,"[{$i}]Estado", ['showLabels'=>false])->dropDownList([ 'Donado' => 'Donado', 'Feriado' => 'Feriado', 'Voluntario' => 'Voluntario', ], ['prompt' => 'Seleccionar']) ?>
</div>
<div class="col-sm-2 control-label" >
<label for="salida">Hora salida</label>
</div>
<div class=" col-sm-3">
<input type="text" class="form-control" pattern="([01]?[0-9]|2[0-3]):[0-5][0-9]" id="salida" placeholder="HH:MM"/>
</div>
<div class="col-sm-3 control-label" >
<label for="entrada">Hora Entrada</label>
</div>
<div class=" col-sm-3">
<input type="text" class="form-control" pattern="([01]?[0-9]|2[0-3]):[0-5][0-9]" id="entrada" placeholder="HH:MM"/>
</br>
</div>
<?= Html::activeLabel($modelViajeGlp, 'HrsH180', [
'label'=>'Horas hasta 180',
'class'=>'col-sm-2 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($modelViajeGlp, "[{$i}]HrsH180",['showLabels'=>false])->textInput(['placeholder'=>'Horas <180', 'id'=>"total_menos"]) ?>
</div>
<?= Html::activeLabel($model, 'HrsM180', [
'label'=>'Horas mayor 180',
'class'=>'col-sm-3 control-label'
]) ?>
<div class=" col-sm-3">
<?= $form->field($modelViajeGlp, "[{$i}]HrsM180",['showLabels'=>false])->textInput(['placeholder'=>'Horas >180', 'id'=>"total_mas"]) ?>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php DynamicFormWidget::end(); ?>
</div>
</div>
</div>
<div class="col-sm-offset-2 col-sm-10">
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Crear' : 'Actualizar', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
<button type="reset" class="btn btn-default">Limpiar</button>
</div>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
</div>
<?php