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" );

    }

}); 

您可以在上面看到一个功能,它可以屏蔽普通复选框以使它们看起来更好。它还按照文档中的建议更改日期选择器的日期格式。我从日期的 dd.mm.yy 格式开始。然后我点击复选框。它按预期将我的日期更改为 mm.yy 格式。再次单击后,我得到空字段。我猜 datepicker 无法将 mm.yy 日期格式解释为 dd.mm.yy - 它不记得对象中的整个日期,它只是从输入字段中选择 mm.yy 日期,并尝试使用它的 dateformat 算法之一来识别它。结果为空字符串。 问题: 如何在不丢失数据的情况下轻松更改 mm.yy 和 dd.mm.yy 日期?

编辑:

我正在考虑将 dd.mm.yy 日期存储在隐藏的输入字段中,并在我单击复选框时随时检索它。它应该工作,但它的技巧 - 我正在寻找更多使用 datepicker。仍然对任何其他想法开放。

4

1 回答 1

0

您可以使用jQuery.data api 来存储完整日期,而不是使用隐藏字段。

于 2012-05-13T23:38:49.137 回答