【问题标题】:jQuery (or javascript) validate date Range [duplicate]jQuery(或javascript)验证日期范围[重复]
【发布时间】:2012-06-20 13:33:35
【问题描述】:

可能重复:
Using Javascript, how do I make sure a date range is valid?

我允许用户在页面上输入日期,而我的一位测试人员正确地破坏了数据库保存并出现以下错误:

SqlDateTime 溢出。必须在 1753 年 1 月 1 日凌晨 12:00:00 到 9999 年 12 月 31 日晚上 11:59:59 之间。

在将日期发送到服务器之前,是否有一个现有的函数可以在客户端在 jQuery 或 JavaScript 中验证这一点,以便我可以向用户提供反馈?我宁愿不必自己写(可能不完整)。

谢谢

【问题讨论】:

标签: javascript jquery validation date


【解决方案1】:

javascript 重载 >< 比较运算符以处理日期。

if (yourDate > new Date('1/1/1753 12:00:00 AM') && 
    yourDate < new Date('12/31/9999 11:59:59 PM')) {
    // date is in your valid range
} else {
    // date is not in your valid range
}

http://jsfiddle.net/jbabey/UB9NR/

请记住,javascript 验证仅用于性能,不会增加安全性;它应始终辅以服务器端验证。

【讨论】:

    【解决方案2】:

    您可以尝试 jQuery 验证 plugin 在客户端处理此问题。 但不要只在客户端这样做。在发送到数据库之前,总是总是在服务器端执行此操作。

    按照jQuerydocs,代码可以这么简单。

    $("#myform").validate({
      rules: {
        field: {
          required: true,
          date: true
        }
      }
    });
    

    如果你想要自定义日期格式,这个answer 值得一看

    【讨论】:

      【解决方案3】:

      使用日期选择器插件http://jqueryui.com/demos/datepicker/#min-max 并使用日期范围方法限制用户输入错误的范围

      http://jqueryui.com/demos/datepicker/#date-range

      代码

      $(function() {
              $( "#from" ).datepicker({
                  defaultDate: "+1w",
                  changeMonth: true,
                  numberOfMonths: 3,
                  onSelect: function( selectedDate ) {
                      $( "#to" ).datepicker( "option", "minDate", selectedDate );
                  }
              });
              $( "#to" ).datepicker({
                  defaultDate: "+1w",
                  changeMonth: true,
                  numberOfMonths: 3,
                  onSelect: function( selectedDate ) {
                      $( "#from" ).datepicker( "option", "maxDate", selectedDate );
                  }
              });
          });
      

      【讨论】:

        【解决方案4】:

        您需要date js 库。我认为这个函数就是你要找的Date.validateDay。见documentation

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-06
          • 1970-01-01
          • 2021-05-11
          • 2019-06-09
          相关资源
          最近更新 更多