jquery ui datepicker and mvc view model type datetime

 2023-02-17    396  

问题描述

我在视图模型上使用jQuery datepicker

这是我的观点:

jquery ui datepicker and mvc view model type datetime

@Html.TextBoxFor(o => o.JobStartDate, new { id = "dt1", @class= "input-block-level" })
@Html.ValidationMessage("JobStartDate")

和我的脚本:

$("#dt1").datepicker({ dateFormat: "dd/mm/yy" });

如果我的日期为

例如:日期16/12/2014将给我错误,而12/12/2014不会

这是我的视图模型:

[Required]
[DataType(DataType.Date)]
[Display(Name = "Start Date")]
public DateTime JobStartDate { get; set; }

我怀疑我的视图模型正在预期以mm/dd/yyyy格式的日期,而在我的datepicker中,我指定了dd/mm/yy的日期,有没有办法告诉我的视图模型我期望dd/mm//mm/yy格式,以免日期> = 12.

,它不会发出错误消息

推荐答案

您可以使用 jquery globalize 或将以下内容添加到您的脚本中(当然,假设服务器文化日期格式为” dd/mm/yyy”)

$.validator.addMethod('date', function (value, element) {
  if (this.optional(element)) {
    return true;
  }
  var valid = true;
  try {
    $.datepicker.parseDate('dd/mm/yy', value);
  }
  catch (err) {
    valid = false;
  }
  return valid;
});
$('#dt1').datepicker({ dateFormat: 'dd/mm/yy' });

,请使用@Html.ValidationMessageFor(m => m.JobStartDate)

其他推荐答案

此处MVC视图模型:

public DateTime? date { get; set; }

这是用于脚本的:

$('.DatePickers').datetimepicker({
        timepicker: false,
        format: 'd-M-Y',
        scrollInput: false,
        closeOnDateSelect: true
    });

Readonly Date Picker的按键事件

$(".DatePickers").keypress(function (event) { event.preventDefault(); });

其他推荐答案

您需要创建一个自定义验证器.您需要修改属性以进行字符串值,例如

public string JobStartDate {get; set; }

然后,您需要创建自定义验证器,例如

public class CheckDateAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext) {
        // Validate your Date here
    }
}

之后,您只会像这样装饰您的财产 –

[CheckDate]
public string JobStartDate {get; set;}

这是一个很好的教程

以上所述是小编给大家介绍的jquery ui datepicker and mvc view model type datetime,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34182.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。