如果我选择日期> 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]);
另一个问题:我在控制器上以不合适的格式获取日期,这就是为什么我的数据库存在错误的条目(日期代替月份和月份)...建议我可能的解决方案......
我发现的相关内容是LINK 1
但以上都没有效果......
答案 0 :(得分:0)
试试这个:
$("#dob").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'mm-dd-yy',
yearRange: '-90:-15',
defaultDate: '-90y'
});
var abc = $("#culture").val();
$("#dob").datepicker("setDate", new Date(abc));
$("#dob").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'dd-mm-yy',
yearRange: '-90:-15',
defaultDate: '-90y'
});
否则,您可以将日期作为刺痛,然后转换为您所需的格式。
如果你正在运行jQuery,你可以使用datepicker UI库的parseDate
函数将你的字符串转换为日期:
var d = $.datepicker.parseDate("DD, MM dd, yy", "Sunday, February 28, 2010");
然后使用formatDate
方法跟进它,使其达到您想要的字符串格式:
var datestrInNewFormat = $.datepicker.formatDate( "mm/dd/yy", d);
如果你没有运行jQuery当然它可能不是最好的计划,因为你需要jQuery核心以及datepicker UI模块......最好从上面的Segfault建议使用date.js
答案 1 :(得分:0)
首先,如果您使用的是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);
最后,对于镀铬上的红色,只需在文本框的样式中添加背景颜色为白色。
@Html.TextBox("InsertDate", Model.InsertDate.ToString("dd/MM/yyyy"), new { @class = "date", @style = "background-color: white;" })
它很脏但是有效..
答案 2 :(得分:0)
解决方案并非如此简单,您应该最终覆盖jquery验证规则。我建议使用此处MVC 3 jQuery Validation/globalizing of number/decimal field
中所述的Globalize插件答案 3 :(得分:0)
如果您希望ASP.Net以<globalization culture="en-GB"/>
格式确认日期,请在web.config
中使用"dd-MM-yyyy"
。