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