0

我昨天的问题类似,因为它与Date浏览器的格式和格式有关。

日期验证允许无效日期

我正在掌握jQuery,这可能就是为什么我经常撞到砖墙的原因,因为我不知道下一步该做什么JavascriptMVC我正在创建一个简单的假期请求应用程序。请求日期必须是工作日。

我昨天完成了这个,这就是我所拥有的。

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,类似于我之前问题中的验证(这似乎只允许*/*/** 是一个数字)。

我的问题是,有没有办法强制我的日期UK在整个 MVC 网站上格式化?如何强制UK格式?

4

1 回答 1

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;
});
于 2013-04-17T11:01:00.993 回答