在Datepicker填写新的选定日期之前,在字段输入上触发远程验证数据属性

时间:2018-08-10 16:16:54

标签: asp.net-mvc datepicker jquery-ui-datepicker data-annotations

我正在使用DataAnnotations的Remote注释来验证出生日期。我也在使用JQuery UI datepicker。当我输入文本框触发日期选择器时,远程验证发生在我实际选择的日期设置之前。因此,如果原始日期无效,则会将其发送回我的服务器以进行验证,并返回一个无效标志,但是新的大概正确的日期会显示在文本框中。然后,这会使最终用户感到困惑。

如何选择日期后而不是在输入文本框时触发远程属性/验证?

我的视图模型BirthDate属性设置如下:

 [DataType(DataType.Date)]
 [DisplayFormat(DataFormatString = "{0:mm/dd/yyyy}", ApplyFormatInEditMode = true)]
 [Required]
 [Remote("IsValidBirthdate", "Utilities", AdditionalFields = "SelectedStateId", HttpMethod = "Get", ErrorMessage = "Invalid Birth Date.")]
 public DateTime? BirthDate { get; set; }

我的Jquery是这样的:

 $("#BirthDate").datepicker({
            maxDate: "-18y -1d",
            dateFormat: "mm/dd/yy",
            changeYear: true,
            changeMonth:true,
            setDate: origDate,
            showStatus: true,
            showWeeks: true,
            autoSize: true,
            constrainInput:true,
            gotoCurrent: false,
            showAnim: 'blind'
        });

0 个答案:

没有答案