2012-05-13 6 views
0

私はチェックボックスでdatepickerを使用しています。チェックされていれば、日付はdd.mm.yy形式で表示され、チェックされていなければmm.yyの形式で表示されます。もう一度チェックした後、日付がdd.mm.yy形式で再度表示されます。jquery - datepickerの問題 - 切り替え日付の形式がデータを失う

あなたがコードで見たようにはほとんど正常に動作します:

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 cantはmm.yyの日付形式をdd.mm.yyに解釈します - オブジェクトの日付全体を覚えていません。入力フィールドからmm.yy日付を選び、dateformatアルゴリズムでその文字列を認識しようとします。空の文字列が返されます。 質問: データを失うことなく、mm.yyとdd.mm.yyの日付を簡単に変更する方法はありますか?

EDIT:

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

+0

または多分コメントe.preventDefault(); – hornetbzz

+0

いいえ、e.preventDefaultは何も変更していないとコメントしました – Kalreg

答えて

0

隠しフィールドを使用する代わりにjQuery.data apiを使用して完全な日付を保存することができます。

関連する問題