我有一個表單,我決定將它分成標籤(基於引導程序),以便由於表單的長度而更易於管理(將每個標籤想象爲一個步驟,但將其設置爲一個步驟不是一個嚮導本身,因爲我沒有真正有興趣構建它嚮導),每個選項卡包含表單的特定信息,在6個選項卡中的2箇中,我有一個表格(每個選項卡中的表格不同),其中帶有按鈕我克隆「TBODY」標籤的第一個「孩子」與jQuery的功能,並刪除(如果需要的話,任何元素「但」第一個孩子。從克隆的錶行處理表單字段jquery
<script>
// function to clone last child in the nearest table.
$('.cloneLastChild').click(function() {
var parentControl = $('#' + $(this).closest('.table').attr('id'));
var counter = parentControl.children('tbody').size();
//console.log(counter);
parentControl.children('tbody:first').clone().appendTo(parentControl);
return false;
});
// function to delete the last child of a table, but always leave 1.
$('.removeLastChild').click(function() {
var parentControl = $('#' + $(this).closest('.table').attr('id'));
parentControl.children('tbody').not(':first').last().remove();
return false;
});
因爲我使用的是表,我將它專門添加到最近的「this」元素表中。
我使用CakePHP構建此項目,由於客戶的要求,元素的命名是問題出現的地方。
這裏是特定標籤給我「命名操作」問題的代碼。
<!-- paso 3.2 -->
<div class="tab-pane fade in" id="paso3-2">
<!-- fieldset -->
<fieldset>
<legend class="h5">3.2. Actividades Generales a Realizar</legend>
<h4 class="h4">Duración del Proyecto:</h4>
<!-- form-group -->
<div class="form-group">
<label for="fecha_inicio" class="col-md-2 control-label">Fecha de Inicio:</label>
<!-- col-md-10 -->
<div class="col-md-4">
<input type="text" class="form-control datepicker" name="data[Proyecto][fecha_inicio]" id="fecha_inicio" placeholder="Fecha de Inicio">
</div><!-- ./cold-md-10 -->
<label for="fecha_final" class="col-md-2 control-label datepicker">Fecha de Culminación:</label>
<!-- col-md-10 -->
<div class="col-md-4">
<input type="text" class="form-control datepicker" name="data[Proyecto][fecha_final]" id="fecha_final" placeholder="Fecha de Culminación">
</div><!-- ./cold-md-10 -->
</div><!-- ./form-group -->
<h4>Señale las actividades generales a realizar especificando los meses de ejecución</h4>
<br><br>
<table class="table table-bordered" id="tablaAtividadesLista">
<thead>
<tr>
<th class="col-md-1" rowspan="2">N#</th>
<th class="col-md-10" rowspan="2">Actividades a desarrollar</th>
<th colspan="12"><h4>Meses de Inicio y Culminación de Actividades</h4></th>
<th rowspan="2"><a href="javascript:;" class="cloneLastChild"><span class="glyphicon glyphicon-plus-sign"></span></a><a href="javascript:;" class="removeLastChild"><span class="glyphicon glyphicon-minus-sign"></span></a></th>
</tr>
<tr>
<th>Ene</th>
<th>Feb</th>
<th>Mar</th>
<th>Abr</th>
<th>May</th>
<th>Jun</th>
<th>Jul</th>
<th>Ago</th>
<th>Sep</th>
<th>Oct</th>
<th>Nov</th>
<th>Dic</th>
</tr>
</thead>
<tbody>
下面這是第一個孩子
<tr>
<td>
<!-- form-group -->
<div class="form-group">
<label for="ActividadProyectosOrden" class="col-md-1 control-label"></label>
<!-- col-md-10 -->
<div class="col-md-10">
<?php echo $this->form->input('ActividadProyectos.0.orden', array('div' => false, 'label' => false, 'class' => 'form-control', 'placeholder' => '#')); ?>
</div><!-- ./cold-md-10 -->
</div><!-- ./form-group -->
</td>
<td>
<!-- form-group -->
<div class="form-group">
<label for="ActividadProyectosDescripcion" class="col-md-1 control-label"></label>
<!-- col-md-10 -->
<div class="col-md-10">
<?php echo $this->form->input('ActividadProyectos.0.descripcion', array('div' => false, 'label' => false, 'class' => 'form-control', 'placeholder' => '#')); ?>
</div><!-- ./cold-md-10 -->
</div><!-- ./form-group -->
</td>
<?php
for($i = 1; $i <= 12; $i++){ ?>
<td>
<?php echo $this->form->input('ActividadProyectos.0.duracion.'.$i.'', array('div' => false, 'label' => false, 'type' => 'checkbox', 'id' => 'ActividadProyectos.duracion.'.$i.'')); ?>
</td>
<?php } ?>
</tr>
上文結束第一孩子和繼續製表符碼的其餘部分。
</tbody>
</table>
<!-- form-group -->
<div class="form-group">
<label for="telf2" class="col-md-1 control-label">Dirección del evento:</label>
<!-- col-md-10 -->
<div class="col-md-11">
<textarea rows="3" class="form-control textarea" id="address" placeholder="Dirección del evento"></textarea>
</div><!-- ./cold-md-10 -->
</div><!-- ./form-group -->
<!-- form-group -->
<div class="form-group">
<label for="pais" class="col-md-1 control-label">País:</label>
<!-- col-md-10 -->
<div class="col-md-3">
<select class="form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div><!-- ./cold-md-10 -->
<label for="estado" class="col-md-1 control-label">Estado:</label>
<!-- col-md-10 -->
<div class="col-md-3">
<select class="form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div><!-- ./cold-md-10 -->
<label for="ciudad" class="col-md-1 control-label">Ciudad:</label>
<!-- col-md-10 -->
<div class="col-md-3">
<select class="form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div><!-- ./cold-md-10 -->
</div><!-- ./form-group -->
</fieldset><!-- ./fieldset -->
</div><!-- ./paso 3.2 -->
當IM克隆的最後一個孩子,這個問題林面對的,是的,我有幾個表單元素,我需要將名稱更改爲「Modelname.NEXTROW.fieldname」,第一個孩子,被命名爲「MODELNAME .0.fieldname「,我怎樣才能做到這一點,所以每個克隆的元素,將名稱從[Modelname] .0。[fieldname]更改爲[Modelname] .1/2/3/4/5/6等等。 [字段名]作爲每行被克隆,
我有一個計數器變量設置和按預期工作,如果我添加2個新的孩子,它打印無論我在進入控制檯時取消註釋,如果我刪除2,但加1,它會打印當前的計數,所以我覆蓋在那裏。
我有問題的領域是那些第一的孩子,你可以看到,它們被命名爲:
ActividadProyectos.0.fieldname
如果您在代碼中指出的那樣,我有一個for循環,在表格中,重複一個代表「月」的複選框,我需要這些值在0和1之間的單個數組中,用逗號分隔,其中1表示月活動,0月不活動,用於其他模塊訪問和處理數據
我需要的是,那麼簡而言之,每個克隆的孩子,應該改變ActividadProyectos.0.fieldname
,到ActividadProyectos.counter.fieldname
。
任何幫助是極大的讚賞!
我解決了這個問題,而不是操縱dom元素,使用注入,使用append而不是克隆,並使用一個累加器變量。無論如何,感謝在這個問題上的幫助。 – JLChafardet