0

defaultDate の問題の理由を突き止めようとしていますが、行き詰まっています。

たとえば、これがあります:

<tr>
    <td><input type="text" value="12/03/2012" id="8798044_date"></td>
    <td><font class="red">-39 999,60 €&lt;/font></td>
    <td>
        <input type="text" id="8798044" class="date_twr">
    </td>
</tr>

これが機能するJSコードです。

jQuery('.date_twr').datepicker({
    'changeMonth':true,
    'changeYear':true,
    'dateFormat': 'dd/mm/yy',
    'defaultDate': jQuery('#8798044_date').val()
});

問題は、IDを使用したくないことです.IDはテストに配置されています。「操作」で検索したい

jQuery('.date_twr').datepicker({
    'changeMonth':true,
    'changeYear':true,
    'dateFormat': 'dd/mm/yy',
    'defaultDate': jQuery(this).parent().prev().prev().find('input').val()
});

このクラスのクリックを使用して、目的の値が正しいことがわかります。

jQuery('.date_twr').click({
    console.log(jQuery(this).parent().prev().prev().find('input').val())
});

ただし、デフォルトの処理の検索は機能しません。ちょっと調べたのですが、なぜ動かないのかわかりません。datepicker 要素が特別な動作をしていると思いますが、突然 jQuery(this) が予期されたものではありません。

少しの助けを歓迎します:)

前もって感謝します

PS: 私が取り組んでいるサイトにはいくつかの JS ライブラリがあるため、$() の代わりに jQuery() を使用します。

4

1 に答える 1

0

日付ピッカーのコンテキストでは、jQuery(this) がドキュメント ルートを参照しているように見えます。これは、HTML をその子として示しています。

jQuery('.date_twr').datepicker({
    'appendText': jQuery(this).children().first().prop('tagName')
});

奇妙なことに、各ループ内でそれを行うとうまくいくようです

jQuery('.date_twr').each(function() {
    jQuery(this).datepicker({
        'changeMonth':true,
        'changeYear':true,
        'dateFormat': 'dd/mm/yy',
        'defaultDate': jQuery(this).parent().prev().prev().find('input').val()
    });
});

編集:これは正しい値を取得しますが、日付ピッカーはそれらを正しく解析していないようで、奇妙な結果が得られます。これにより、正しい形式で日付が解析され、日付オブジェクトが日付ピッカーに渡されます。

jQuery('.date_twr').each(function() {
    var dt = jQuery.datepicker.parseDate('dd/mm/yy', jQuery(this).parent().prev().prev().find('input').val());
    jQuery(this).datepicker({
        'changeMonth': true,
        'changeYear': true,
        'dateFormat': 'dd/mm/yy',
        'defaultDate': dt
    });
});
于 2012-08-23T12:34:00.383 に答える