没有日历的日期验证插件
Posted
技术标签:
【中文标题】没有日历的日期验证插件【英文标题】:Date validation plugin without calendar 【发布时间】:2012-07-25 13:55:28 【问题描述】:我们正在推出一个新的内容管理系统并重做我们的用户输入表单,让营销部门可以完全控制显示的内容、顺序等。我真的很想使用 jquery ui datepicker 插件,因为我们基本上可以将其验证规则直接插入 CMS,从而实现完全可定制的控件,无需任何开发输入。我已经展示了它并展示了它是多么容易配置。
我们当前的表单使用三种不同的下拉菜单,日、月和年各一个。有一些人并没有改变这种外观/感觉。我们都见过他们,其中之一:
<select>
<option value="">-- Month --</option>
<option value="1">Jan</option>
<option value="2">Feb</option>
<option value="3">etc.</option>
</select>
<select>
<option value="">-- Day --</option>
<option value="1">1</option>
<option value="2">etc.</option>
<option value="31">31</option>
</select>
<select>
<option value="">-- Year --</option>
<option value="etc.">etc.</option>
</select>
毫无疑问,我可以实现这一点。我不想做的是编写和维护一个将规则从 CMS 转换为 js 输入的 javascript 库——必须有更好的方法。
我已经向他们展示了 jquery ui 插件中的月/年下拉选择器:http://jqueryui.com/demos/datepicker/#dropdown-month-year,但他们仍然没有购买它。关于显示一个月中的日子的一些事情......利益相关者。
我想知道是否有一个现有的可配置插件在可配置性方面匹配/竞争 jquery UI 插件并提供 3-select 形式因素。我特别使用了mindate
、maxdate
(用于不同输入类型的不同日期范围)和altformat
选项(自动转换我们后端期望的提交格式)。对不起,如果我的挫败感出来了...感谢您的意见。
编辑:只记得堆栈交换上有一个单独的 UI/UX 区域。如果这更适合那里,我很抱歉 - 我还没有帐户。
【问题讨论】:
我觉得这是属于这里的,它看起来更像是编码而不是设计...... 虽然告诉利益相关者“不”通常是不明智的,但您可以让他们了解决策的成本/影响。告诉他们正确编码和维护 3 个选择需要多长时间,以及实现日期选择器需要多长时间。 我读了两遍这个主题,我不完全理解你想要做什么,以及当前的答案如何没有给你满意的结果。您能否针对您的实际场景提供更多反馈? 试试雅虎用户界面:yuilibrary.com/yui/docs/calendar/calendar-multipane.html @Khez 在您发表评论前一小时,正好有一个答案 :-) 我将尝试其中的一些建议,看看我是否可以在 jsfiddle 中分享一些接近我想要的东西. 【参考方案1】:根据您的问题标题,您可以查看 datejs 进行所有日期解析、验证和递增。
http://code.google.com/p/datejs/
【讨论】:
+1 这表明了承诺。我之前找到了用于日期格式的Date Format 1.2.3 * (c) 2007-2009 Steven Levithan <stevenlevithan.com>
,但这看起来它将有更多我需要的范围检查。【参考方案2】:
我不确定是否已经有完全适合您需要的东西。
但是,您可以使用date-utils,这将简化您的验证。以下是文档中的一些示例:
Date.validateDay(day, year, month); // true/false whether a date is valid
d.between(date1, date2); // true/false if the date/time is between date1 and date2
d.isBefore(date); // true/false, true if this is before date passed
d.isAfter(date); // true/false, true if this is after date passed
d.toFormat(format); // returns date formatted with...
【讨论】:
【参考方案3】:this 呢?
例子的链接是here。
【讨论】:
我试过了,但它仍然落后于我的理想用例。这从一些下拉列表中驱动了一个日期选择器日历小部件。它根本无法自动填充或限制日期选择器选项的下拉菜单。我可能会使用他们示例代码的一小部分,但它并没有真正节省任何完全自定义的实现。【参考方案4】:您可以尝试mobiscroll,它仍然提供下拉式感觉的所有功能,而不会影响外观。
【讨论】:
我确定我不是唯一一个真正不喜欢使用它们的人。 你为什么不喜欢使用它们? 取消选择时,它占用的空间超过 3 个单独的下拉菜单。选择后,它向我显示的选项少于下拉菜单。虽然它不像触摸屏那样为鼠标而设计,但它需要更多的点击才能达到我所追求的值。使用触摸屏时,滑过您想要选择的值要容易得多。 没错,但它确实看起来很酷,顺便说一句,您可以使用鼠标上的滚轮更快地到达任何点。恕我直言,利益相关者似乎更喜欢酷而不是实际可用性。 很遗憾,我完全同意你的看法。以上是关于没有日历的日期验证插件的主要内容,如果未能解决你的问题,请参考以下文章