微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

日期选择器:输入错误时返回到上一个值

如何解决日期选择器:输入错误时返回到上一个值

| 大多数验证插件显示错误消息。但是,我希望(datepicker)完全避免输入不正确的值,而自动恢复为最后一个正确的值(不是页面加载时的初始值,而是最后一个正确的值)。 那怎么可能?     

解决方法

可能是我,但我倾向于发现这是一个可怕的用户界面:如果我在日期或任何其他字段中输入错误,我想要做的最后一件事就是需要从头开始重新输入。 理想情况下,UI不应允许您首先输入错误的日期。 如果它确实允许您这样做,那么我宁愿通过将其背景颜色切换为红色(可能带有非侵入性错误消息)来突出显示该字段,以便我可以查找并纠正错字而无需重新输入。     ,我刚刚找到了lastVal参数,这似乎是您想要的。尝试以下方法(答案在CoffeeScript中,但易于转换为JavaScript):
$(\".date1\").datepicker.onClose = (dateText,inst) ->
    if selectedDateIsValid(dateText,inst)
        // Process new date
    else
        $(this).val(inst.lastVal)
        window.alert(\"The selected day is invalid: \",dateText)
    ,请参阅有关日期选择器的问题的此答案以获取一些背景信息。因此,您可以让datepicker负责将文本输入转换为date对象。您可以在进行这种转换之前保存先前的有效值,并在新输入出现问题的情况下将其还原为该值,如下所示:
// save current value
var currentDate = $(\'#dateInput\').datetimepicker().val();
// transform current text input into date
$(\'#dateInput\').datetimepicker(\'setDate\',$(\'#dateInput\').val());
// ...
// revert value in case you catch a problem with new date
$(\'#dateInput\').datepicker().val(currentDate);
$(\'#dateInput\').val($(\'#dateInput\').datepicker().val());
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。