0

チェックボックス付きの日付ピッカーを使用しています。チェックされている場合、日付はdd.mm.yy形式で表示され、チェックされていない場合、日付はmm.yy形式で表示されます。もう一度確認すると、日付がdd.mm.yy形式で表示されます。

コードでわかるように、ほぼ正常に機能します。

HTML:

<div class="pola_tresc">
   <input type="text" name="date_from" id="date_from">
</div>
<label class="label_check">
    <input name="mm_yy" id="" value="" type="checkbox"/>
</label>

Javascript:

    $( "#date_from" ).datepicker();
$('.label_check').click(function(e){
    e.preventDefault();
    if ( $('label > input').prop('checked') == true )
    {
        $('label > input').prop('checked', false);
        $('label').removeClass('c_on');
        $( "#date_from" ).datepicker( "option", "dateFormat", "dd.mm.yy" );

    } else  {
        $('label > input').prop('checked', true);
        $('label').addClass('c_on');
        $( "#date_from" ).datepicker( "option", "dateFormat", "mm.yy" );

    }

}); 

上に表示されているのは、通常のチェックボックスをマスクして見栄えを良くする関数です。また、ドキュメントで提案されているように、datepickerの日付形式を変更します。日付のdd.mm.yy形式から始めます。次に、チェックボックスをクリックします。意図したとおりに日付がmm.yy形式に変更されます。もう一度クリックすると、空のフィールドが表示されます。datepickerはmm.yyの日付形式をdd.mm.yyに解釈できないと思います-オブジェクト内の日付全体を記憶せず、入力フィールドからmm.yyの日付を選択し、その日付形式アルゴリズムの1つで認識しようとします。空の文字列になります。 質問: データを失うことなく、mm.yyとdd.mm.yyの日付を簡単に変更するにはどうすればよいですか?

編集:

dd.mm.yyの日付を非表示の入力フィールドに保存し、チェックボックスをクリックするたびに取得することを考えています。それは動作するはずですが、それはトリックです-私はdatepickerのより多くの使用法を探しています。他のアイデアのためにまだ開かれています。

4

1 に答える 1

0

非表示フィールドを使用する代わりに、 jQuery.data API を使用して完全な日付を格納できます。

于 2012-05-13T23:38:49.137 に答える