私は、クローンメソッドを使用して、動的に入力を追加したフォームを作成しています。各入力には日付ピッカーが必要です。
各入力の名前は出力のために区別されます。フォーム要素に動的にJQuery Datepickerを追加する
私はこのためにJquery UI Datepickerを使用しています。 (コンソールのメッセージ)が発生する問題「の$ cloned.find(...)。ATTR(...)が定義されていない」
私はjQuery DatePicker not working on newly added row
別のポストに行って、hasDatepickerを削除しようとしましたクラス(以下のコードに含まれています)が、問題は解決しません。
入力またはリソースをありがとう。
コードは以下である:
<table>
<tr>
<td name="a" class="FormLabel" width="100px"><strong>Class Year*</strong></td>
<td width="100px"><input type="text" id="datepicker" name="ClassYear_1" class="usedatepicker" value="" tabindex="4" /></td>
</tr>
</table>
<button type="button" id="add-btn" name="add-btn">Add Class Year</button>
JSコード:
function clone2(){
var $cloned = $('table tr:last').clone();
$cloned.removeClass('hasDatepicker').datepicker();
//console.log($(this));
//alert($(this).attr('name'));
var oldIndex = $cloned.find('input').attr('name').match(/\d+/);
var newIndex = parseInt(oldIndex,10)+1;
$cloned.find('input').each(function(){
var newName = $(this).attr('name').replace(oldIndex, newIndex);
$(this).attr('name', newName);
});
$cloned.insertAfter('table tr:last');
}
$('#add-btn').click(function() {
clone2();
});
//attach datepicker - begin
$(document).ready(function() {
$(".usedatepicker").datepicker(); // or
$(".usedatepicker").datepicker("refresh");
});
あなたの投稿に感謝します。私は、Jquery Datepickerの異なるIDに関する質問があります。このように使用すると(https://jsfiddle.net/buck1115/gj2ohyf3/50/)、Jquery DatepickerはユニークなIDを生成します。もちろん、私があなたが述べたようにそれらを生成することはできますが、私はなぜネイティブIDの生成がこの場合にはうまくいかないのだろうと思っていましたか? – buck1112
ここで私はあなたの提案を使用しましたが(https://jsfiddle.net/buck1115/hhzL1kw6/26/)、入力ボックスのうちのどれもがクリックされていなければ、私が望む新しい一番上の行の入力ボックスは、2番目のボックスがクリック/起動されると、datepickerを起動します。上の2つのボックスだけが発射されます。私の新しいコードには異なるIDがあります。私はIDとIDコードを削除しようとしましたが、クラスを離れるだけでしたが、それは同じ結果でした。 – buck1112
私の最後のコメントを修正する - コンソールのエラーメッセージは次のとおりです: 'TypeError:$ cloned.find(...)。attr(...)は未定義です' – buck1112