【问题标题】:jquery - datepicker issue - switching date format loses datajquery - datepicker 问题 - 切换日期格式丢失数据
【发布时间】:2012-05-13 22:55:06
【问题描述】:

我正在使用带有复选框的日期选择器。如果选中,则日期应以 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。仍然欢迎任何其他想法。

【问题讨论】:

  • 或者评论 e.preventDefault();
  • 不,e.preventDefault 评论不会改变任何东西

标签: jquery datepicker date-format


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2012-04-01
    • 2014-01-04
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多