bootstrap-datepicker 및 부트 스트랩을 사용하여 행을 복제하려고 할 때이 문제점을 발견했습니다.복제 된 행에 bootstrap-datepicker를 사용할 수 없습니다. 항상 첫 번째 날짜 필드에 값을 유지하십시오.
재현 단계 : 1. 첫 번째 입력 날짜 (id_form-0-expense_date_item)를 선택하면 사용자가 날짜를 선택할 수 있습니다. 2. 다른 행을 추가하고 두 번째 입력 날짜 사용자를 선택하면 datepicker가 다시 표시되지만 날짜가 선택 값이면 첫 번째 입력 필드로 이동합니다. id_form-0-expense_date_item
행을 복제 할 수 있지만 달력 날짜는 항상 첫 번째 필드 (id_form-0-expense_date_item)에 있습니다. jQuery UI 1.10.3을 사용할 때 잘 동작합니다. 여기
예 : http://jsfiddle.net/uoyzbwro/9/
<table id="id_forms_table" border="0" cellpadding="0" cellspacing="5">
<thead>
<tr>
<th scope="col"> </th>
<th scope="col">Property name</th>
<th scope="col"> </th>
<th scope="col"> </th>
</tr>
</thead>
<tbody>
<tr id="form-0-row" class="dynamic-form">
<td>
<input class="datepicker" id="id_form-0-expense_date_item" name="form-0-expense_date_item" type="text" />
</td>
<td> Column </td>
<td> Contains </td>
<td>
<a id="remove-form-0-row" href="javascript:void(0)" class="delete-row">delete row</a>
</td>
</tr>
</tbody>
</table>
<div>
<button>Add Row</button>
</div>
===은
<!--
$(function() {
// datepicker plugin
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
// You can put more options here.
autoclose: true,
startDate: new Date()
});
})
function updateElementIndex(el, prefix, index){
var id_regex = new RegExp('(' + prefix + '-\\d+)');
var replacement = prefix + '-' + index;
if ($(el).attr("for")) $(el).attr("for", $(el).attr("for").replace(id_regex, replacement));
if (el.id) el.id = el.id.replace(id_regex, replacement);
if (el.name) el.name = el.name.replace(id_regex, replacement);
}
var i = 1;
$("button").click(function() {
//Destroy datepickers
$('.datepicker').datepicker('destroy');
myTr = $("#id_forms_table tbody tr:first").clone(true).appendTo("table");
//Remove classes datepickers
//myTr.removeClass('hasDatepicker').find("input");
updateElementIndex(myTr, 'form', 1);
myTr.removeClass('hasDatepicker').find("input").each(function() {
$(this).attr({
'id': function(_, id) { return id + i },
'name': function(_, name) { return name + i },
'value': ''
});
});
//myTr.find('input[id^="datep"]').addClass("mydatepickers");
$(".datepicker").datepicker();
i++;
});
$(document).on('click', '.delete-row', function() {
$(this).closest("tr").remove();
return false;
});
$(function() {
// datepicker plugin
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
// You can put more options here.
autoclose: true,
startDate: new Date()
});
})
//-->
의미? 내가 바이올린에 가면 - 나는 내가 무엇을 입력해야하는지, 내가 할 때 일어날 것으로 예상되는 것이 무엇인지 모른다 ... –
1) 코멘트에 내게 말하지 마라. 이 내용은 질문의 일부 여야합니다. 질문을 편집하여 거기에 정보를 추가하십시오. 관련이있을 수있는 것으로 생각할 수있는 다른 것;) –
클론 (true)을 사용하지 않고 새 행의 datepicker를 다시 초기화하십시오. – charlietfl