jquery - Chrome 中的低调验证不会使用 dd/mm/yyyy 进行验证

标签 jquery jquery-ui jquery-validate datepicker unobtrusive-validation

我试图在不同的浏览器中使用日期选择器来使用最简单的可能场景。我怀疑我以错误的方式做了一些非常简单的事情,但经过大量搜索后我仍然没有找到解决方案。下面是一些示例代码,代表了我正在尝试的内容。

如果我使用 Chrome (v12.0.742.122) 并从选择器中选择一个日期,例如 13/08/2011,jQuery 验证逻辑将不允许页面提交,即使我已将格式明确指定为“dd”/毫米/年'。

如果我将格式更改为“dd/M/yy”并选择 2011 年 8 月 13 日等日期,它可以在 Chrome 中运行,但不会在 IE 中提交(v8.0.7600.16385)。在 FireFox (v3.6.18) 中,两种格式均有效。

我需要什么验证脚本才能支持 Chrome 中的“dd/mm/yy”日期格式?

<html>
 <head>
  <link rel="stylesheet" type="text/css" href="jquery-ui.css" />
  <script type="text/javascript" src="jquery-1.4.4.js"></script>
  <script type="text/javascript" src="jquery.validate.js"></script>
  <script type="text/javascript" src="jquery.validate.unobtrusive.js"></script>
  <script type="text/javascript" src="jquery-ui.js"></script>
  <script type="text/javascript">
      $(document).ready(function () {
    $('.date').datepicker({ dateFormat: 'dd/mm/yy' });
            $.validator.addMethod("dateRule", function(value, element) {
      return true;
    },
    "Error message");
      });
  </script>
 </head>
 <body>
    <form>
        Date: <input type="text" name="myDate" class="date dateRule" />
        <input type="submit" />
    </form>
 </body>
</html>

最佳答案

四个小时后,我终于偶然发现了 answer 。由于某种原因,Chrome 似乎有一些内置的偏好使用美国日期格式,其中 IE 和 FireFox 能够敏感并使用操作系统上的区域设置。

jQuery.validator.methods["date"] = function (value, element) { return true; } 

关于jquery - Chrome 中的低调验证不会使用 dd/mm/yyyy 进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6906725/

相关文章:

Jquery UI 可拖动对齐并带有边距

jQuery 可在表上使用序列化进行排序

javascript - 如果输入为空,则以逐步形式放置错误类

jquery - 如何使用不显眼的 jQuery 验证手动重新验证/触发验证?

jquery - $(window).scroll() 循环,由于没有变量

jquery - 没有AM-PM和最小-最大的html5输入类型时间

javascript - jQuery SerialScroll 循环参数

javascript - 当用户开始输入时如何清除表单的默认值(jquery)

JQuery验证: errorPlacement doesn't get called

javascript - 添加特定元素的 onclick 事件(没有 id 或 class)