私がやろうとしていることを説明する方法がわからないので、コードの短いバージョンを次に示します。
var counter = 1;
var currDate = new Date(),
today = (currDate.getMonth() + 1) + '/' + currDate.getDate() + '/' + currDate.getFullYear();
$("#btnAdd").click(function (event) {
addRow = "<tr><td><input type='text' class='dateClass defaultDate' id='txtDate" + counter + "'/></td></tr>";
event.preventDefault();
counter++;
$("#tblName").append(addRow);
$("#txtDate" + counter).val(today);
$(".dateClass").datepicker();
});
動的に追加された行には、ユーザーが選択する日付のテキストボックスが含まれていますが、デフォルトでは、この値は現在の日付になります。さて、私の問題は、行の追加ボタンをクリックするたびに、前のテキストボックスの値が、別の日付を既に設定しているにもかかわらず、デフォルトの日付に戻ってしまうことです。
追加された各行には defaultDate というクラス名が付けられるため、代わりに txtDate + カウンター (つまり txtDate2) の ID を使用する必要があると考えましたが、それが正しい方法かどうかはわかりません。基本的に、新しい行を追加するときに、デフォルトの日付を新しい行に設定するだけで、前の行の現在の値を変更しないことをボタンに伝えるにはどうすればよいですか?