2012-05-13 72 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無法將mm.yy日期格式解釋爲dd.mm.yy - 它不記錄對象中的整個日期,它只是從輸入字段中選擇mm.yy日期,並嘗試用它的一個dateformat算法識別它。它導致空字符串。 問題: 如何在不丟失數據的情況下輕鬆更改mm.yy和dd.mm.yy日期?

編輯:

我想在隱藏的輸入字段存儲DD.MM.YY日期和檢索它隨時我點擊複選框。它應該工作,但它是技巧 - 我正在尋找更多的使用datepicker。仍然打開任何其他的想法。

+0

或者可能註釋e.preventDefault(); – hornetbzz

+0

不,e.preventDefault評論沒有改變任何東西 – Kalreg

回答

0

您可以使用jQuery.data api來存儲完整日期而不是使用隱藏字段。