我试图将jquery日期评估更改为en-GB文化但没有成功。 例如,对于2013年3月23日,我想输入23/03/2013而不是2013年3月23日。
当我在表单上调用验证方法时,它返回false。我没有从jndo获得验证错误,只是来自jquery方法。
如何更改jQuery的文化设置?
<script src="@Url.Content("~/Scripts/Kendo/cultures/kendo.culture.en-GB.min.js")"></script>
<script>kendo.culture("en-GB");</script>
...
@(Html.Kendo().DatePickerFor(model => model.OrderDate).HtmlAttributes(new { style = "width:150px", required = "required" }).Culture("en-GB").Format("dd/MM/yyyy"))
...
var isValid = $("#orderForm").valid(); // returns false if I select 23/3/2013
感谢。
答案 0 :(得分:1)
将其放入您的脚本中,并从此处获取正则表达式:Regex to validate date format dd/mm/yyyy
jQuery.validator.methods.date = function (value, element) {
var dateRegex = /copyRegexHere/;
return this.optional(element) || dateRegex.test(value);
};
答案 1 :(得分:0)
这是WebKit浏览器和jQuery验证的已知问题。它似乎是由团队some time ago提出的,但许多用户仍在报告问题。
有几种方法可以调试并解决此问题。首先尝试重写jQuery验证,以确保这实际上是您所看到的问题:
jQuery.validator.methods["date"] = function (value, element) { return true; }
或者,通过找到函数
来攻击jquery.validate.js
date: function (value, element)
并插入来自this post的类似内容(请注意$ .browser现已弃用,以下是说明可能的方法):
if ($.browser.webkit) {
var d = new Date();
return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value)));
}
else {
return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
}