0

jQuery UI の datepicker 関数を使用して、HTML フォームに多数の日付フィールドを作成しています。

次のコードを使用して、「datepicker」クラスの入力フィールドを機能させています。

$('.datepicker').each(function() {
    var id = $(this).attr('id').split('_')[0];

    if ($('#'+id+'_value').val()) { 
        var initialdate = new Date($('#'+id+'_value').val());
    }
    else {
        var initialdate = new Date();
    }

    $(this).val($.datepicker.formatDate('DD, d MM, yy', initialdate));
    $('#'+$(this).attr('id').split('_')[0]+'_value').val($.datepicker.formatDate('yy-mm-dd', initialdate));
    $(this).datepicker({
                        'dateFormat': 'DD, d MM, yy',
                        'altField': '#'+id+'_value',
                        'altFormat': 'yy-mm-dd' 
    });
});

ただし、他の JavaScript を使用して、いくつかのフォーム要素を含むスパンを複製しています。新しい要素が作成されると、datepicker 関数は機能しません。

新しいものを既存のものと同じように機能させるにはどうすればよいですか?

アドバイスをいただければ幸いです。

ありがとう。

4

1 に答える 1

0

おそらくドキュメント作成時にその反復を呼び出しているため、後で DOM に追加されたアイテムは新しい日付ピッカーとしてインスタンス化されないため、日付ピッカーを有効にする新しく追加された要素ごとに .datepicker() を明示的に呼び出す必要があります。

基本的に、コードを上記の反復子から独自の関数に移動してから、次のようにします。

$('.datepicker').each(myDatePickerFunction($(this));

そして、後で追加する要素に対して同じ関数を呼び出します。

于 2012-09-03T12:36:01.393 に答える