<<このスレッドの質問の拡大>>
私がやりたいことは、日付セレクターの jQuery 関数をテーブルに動的に追加することです。私はこのテーブルを持っています:
<table id="tblDetail">
<tr>
<td><input type="text" class="datepicker" name="a[]"></td>
</tr>
</table>
<button id="addinput">Add row</button>
<input type="button" id="removeRow" value="Delete row" onclick="removeRowFromTable();"/>
そして、JavaScriptで日付を選択するために、私は以下を使用しました:
$(function() {
$('#addinput').click(function() {
$('#tblDetail tbody>tr:last').clone(true).insertAfter('#tblDetail tbody>tr:last');
});
$('.datepicker').live("click", function() {
$(this).datepicker({
changeMonth: true,
changeYear: true,
gotoCurrent: true,
dateFormat: 'yy-mm-dd',
yearRange: '1980:c',
defaultDate: '-10y'
}).datepicker('show');
});
});
function removeRowFromTable() {
var tbl = document.getElementById('tblDetail');
var lastRow = tbl.rows.length;
if (lastRow > 2) tbl.deleteRow(lastRow - 1);
}
それは機能しますが、行を追加すると、日付ピッカーは引き続き表示されますが、常に最初の行のテキストボックスに値が返されます。どうやってするか?
アップデート
このフィドルを確認してください。
コードで問題が解決したことがわかりました (datepicker テキストボックスのID 要素を省略する必要があります) が、datepicker を選択せずに最初に行を追加した場合にのみ機能します。ただし、行の追加を停止して日付ピッカーの使用を開始すると (以前に追加したテキストボックス全体を日付ピッカーで埋める)、行を再度追加すると、新しく追加された行に対して日付ピッカーが機能しなくなります。