에서 양식 필드 조작 양식의 길이로 인해 관리하기 쉽게하기 위해 (부트 스트랩을 기반으로하는) 탭으로 분할하는 양식이 있습니다 (각 탭을 단계로 상상해보십시오. 마법사 자체가 아니기 때문에 마법사와 같은 마법사를 만드는 데별로 관심이 없습니다.), 각 탭에는 6 개의 탭 중 2 개에 폼에 대한 특정 정보가 들어 있습니다. 각 테이블마다 다른 테이블이 있습니다. 버튼을 나는 JQuery와 기능은 "TBODY"태그의 첫 번째 "아이"를 복제하고 (필요한 경우, 모든 요소 "하지만"첫 번째 자식을 삭제하고 있습니다.복제 된 테이블 행 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 -->
, 나는 "MODELNAME라는"Modelname.NEXTROW.fieldname "첫 번째 자식으로 이름을 변경해야 할 몇 가지 형태의 요소가 .0.fieldname ", 어떻게 복제 할 수 있습니다, 그래서 각 복제 된 요소는 [Modelname] .0. [fieldname]에서 [Modelname] .1/2/3/4/5/6 등으로 이름을 변경합니다. [fieldname] 각 행을 복제 할 때마다
나는 카운터 변수를 설정하고 의도대로 작동합니다. 2 개의 새 하위 항목을 추가하면 콘솔에서 아무 위치 에나 인쇄 할 때, 하지만 1을 더하면 현재 카운트를 출력하므로 거기에서 다루어집니다.
ActividadProyectos.0.fieldname
당신이 코드에서 언급하면 내가 가진 : 당신은, 그들이 이름을 지정하는 볼 수있는 내가 문제가있어
필드는, 최초의 어린이들입니다 "개월"을 나타내는 체크 상자를 반복하는 테이블의 for 루프는 쉼표로 구분 된 0과 1의 단일 배열에 해당 값이 필요합니다. 여기서 1은 월 활성을 의미하고 0은 비활성입니다. 데이터를 액세스하고 처리하는 다른 모듈
내가 원하는 것은 간단히 말해서 각 복제 된 자식은 ActividadProyectos.0.fieldname
을 다음과 같이 변경해야합니다. ActividadProyectos.counter.fieldname
.
모든 도움을 주시면 대단히 감사하겠습니다.
나는 dom 요소를 조작하고, 주입하고, 복제 대신에 append를 사용하고, acumulator 변수를 사용하는 대신이 문제를 해결했습니다. 어쨌든이 문제에 대한 도움을 주셔서 감사합니다. – JLChafardet