JQuery datepicker不稳定的客户端验证

时间:2013-12-16 23:05:41

标签: jquery asp.net-mvc validation datepicker

我正在使用具有强类型视图的MVC 4,并且在我的表单中我有一个日期字段,使用jquery datepicker ...

我将向您展示一个完整的例子:

在显示的顺序中使用以下内容......

<script src="/Scripts/jquery-2.0.3.min.js"></script>
<script src="/Scripts/jquery-ui-1.10.3.full.min.js"></script>
<script src="/Scripts/jquery.ui.datepicker.validation.js"></script>
<script src="/Scripts/jquery.validate.min.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js"></script>

观点......

<div class="control-group">  
    @Html.LabelFor(model => Model.CAAD_Fecha_Contacto, new { @class = "control-label" })      
    <div class="controls">  
        @Html.TextBoxFor(model => Model.CAAD_Fecha_Contacto, new { @class = "datepicker", autocomplete = "off" })
    </div>
</div>  

模特......

[Required(ErrorMessage = "La fecha de contacto es obligatoria")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/mm/yyyy}")]
[DisplayName("Fecha de contacto con notificador")]
public System.DateTime? CAAD_Fecha_Contacto { get; set; }

客户端验证码:

$('.datepicker').datepicker({ dateFormat: "dd/mm/yy", weekStart: 1, autoclose: true });


$('#casoAdversoForm').validate(
{
    rules: {
        CAAD_Fecha_Contacto: {
            required: true,
            },
    highlight: function (element) {
        $(element).closest('.control-group').removeClass('success').addClass('error');
    },
    success: function (element) {
        element.closest('.control-group').removeClass('error').addClass('success');
    }
});

日期选择器显示正常,当我选择日期时,输入验证错误将被删除,并且将放置有效的类。至少这是预期的行为。

但在我的情况下,在我点击并再次选择日期之前,输入验证类不会被删除,可能是4,5或6次。之后,有效的班级出现......

我认为这与dateformat(dd / mm / yy)相关,但事实并非如此。如果我把12/12/2012,对欧盟或美国格式都有效,它仍会显示错误。

出现的错误也不稳定。有时看起来该字段是必需的(字段不为空)或者它警告日期格式......

可以使其工作的唯一方法是删除datepicker初始化$('。datepicker')。datepicker();

如果我手动编写日期,它似乎可以正常工作。

0 个答案:

没有答案