这个 的方式类似于昨天的问题,因为它与浏览器中Date
类型的格式和格式有关。
Date validation allows invalid dates
我正在处理jQuery
,Javascript
和MVC
,这可能就是我不断打砖墙的原因,因为我无法理解接下来要做什么。我正在创建一个简单的假期请求应用程序请求日期必须是工作日。
我昨天跟进了this,这就是我所拥有的。
public class WeekdayAttribute : ValidationAttribute, IClientValidatable
{
public override bool IsValid(object value)
{
DateTime dt;
if (DateTime.TryParse(value.ToString(), out dt))
return dt.DayOfWeek != DayOfWeek.Saturday && dt.DayOfWeek != DayOfWeek.Sunday;
else
return false;
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
yield return new ModelClientValidationRule()
{
ErrorMessage = ErrorMessage,
ValidationType = "weekdaydate"
};
}
}
然后我在jQuery.validate.unobtrusive
$jQval.addMethod("weekdaydate", function(value, element, params) {
var day = new Date(value).getDay();
return day != 0 && day != 6;
});
这个功能很好,因为如果我输入一个无效的US
日期,它将验证正常并显示一条消息。然而,我忽略了我的机器和浏览器是UK
,类似于我之前的问题中的验证(似乎只允许*/*/*
,其中*是数字)。
我的问题是,有没有办法在整个MVC网站上强制我的日期为UK
格式?如何强制UK
格式?
答案 0 :(得分:0)
@jbl's
这是一个很棒的呐喊。我已将date
中的jquery.validation.js
验证修改为如下:
$jQval.addMethod("weekdaydate", function(value, element, params) {
var day = new moment(value, "DD-MM-YYYY").day();
return day != 0 && day != 6;
});