Jquery datepicker 采用美国日期格式进行验证

标签 jquery asp.net asp.net-mvc-3 datepicker

如果我选择日期 >12,我会在 chrome 上收到验证消息

我使用了带有语法的本地化日期选择器

var abc = $("#culture").val();
        $.datepicker.setDefaults($.datepicker.regional[""]);

        $("#dob").datepicker({
            changeMonth: true,
            changeYear: true,
            dateFormat: 'dd-mm-yy',
            yearRange: '-90:-15',
            defaultDate: '-90y'

        });
        $.datepicker.setDefaults($.datepicker.regional[abc]);


另一个问题:我在 Controller 上以不需要的格式获取日期,这就是为什么我的数据库保存错误的条目(日期代替月份,月份代替日期)..建议我可能的解决方案...

我发现相关的是LINK 1

Link2

Link 3

但是以上方法都不起作用...

最佳答案

首先,如果您使用 MVC,并且显示来自服务器的一些日期,则应该显示如下日期:

@Html.TextBox("InsertDate", Model.InsertDate.ToString("dd/MM/yyyy"), new { @class = "date" })

在你的 jquery 中:

$('.date').datepicker({ dateFormat: "dd/mm/yy" }).val();

如果您的文化是 en-US,则 ModelState.IsValid 将中断。 一个肮脏的黑客是这样的:

var insertDateStr = ModelState.Values.ToList()[3].Value.AttemptedValue;
var insertDate = DateTime.ParseExact(insertDateStr, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);

最后,对于 chrome 上的红色,只需以文本框的样式添加背景颜色白色即可。

@Html.TextBox("InsertDate", Model.InsertDate.ToString("dd/MM/yyyy"), new { @class = "date", @style = "background-color: white;" })

虽然很脏,但是很管用..

关于Jquery datepicker 采用美国日期格式进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10793459/

相关文章:

asp.net - 尝试执行存储过程时出现无效的对象名称错误?

asp.net - 使用 http post 可以上传多大的文件有硬性限制吗?

asp.net-mvc-3 - 如何从 MVC 3 应用程序异步发送电子邮件?

asp.net-mvc-3 - $.ajax 调用后的 RedirectToAction MVC 3

javascript - 多个按钮的复制到剪贴板功能如何从 id 切换到类标识符

javascript - Grails - 在 javascript 中访问 http 数据

java - 一个应用程序,AppEngine 上的多个域

jquery - 使用 :focus selector 检查子菜单的所有子菜单以查看 jquery 中是否有任何元素具有焦点

javascript - 来自 JavaScript Split 函数的意外行为 (Chrome/Firefox)

jquery - 如何使用 jQuery 设置单选选项检查 onload