该字段必须是日期 - Chrome 中的 DatePicker 验证失败 - mvc [英] The field must be a date - DatePicker validation fails in Chrome - mvc

查看:17
本文介绍了该字段必须是日期 - Chrome 中的 DatePicker 验证失败 - mvc的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个奇怪的问题.我的日期验证在 Chrome 中不起作用.我试过这个答案但它对我不起作用.

我的模型中有这个:

[Display(Name = "Date")][数据类型(数据类型.日期)]公共日期时间日期{获取;放;}

我的观点:

@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })@Html.ValidationMessageFor(model => model.Item.Date)

$(document).ready(function () {$('.picker').datepicker({dateFormat: 'dd.mm.yy',changeMonth: 真,更改年份:真实,selectOtherMonths: 真});});

在 Opera 和 Firefox 中一切正常,但 Chrome 不喜欢这种类型的日期.我不断收到以下错误字段日期"必须是日期.

有什么想法吗?

更新

代码在局部视图中时似乎有问题.当我将该代码复制到主页时,验证工作正常.

我在主视图中插入部分视图,就像这样:

@Html.Partial("_CreateOrEdit", 模型)

上面的代码在局部视图中:

@model Pro.Web.Models.Model<div class="editor-field">@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })@Html.ValidationMessageFor(model => model.Item.Date)

$(document).ready(function () {$('.picker').datepicker({dateFormat: 'dd.mm.yy',changeMonth: 真,更改年份:真实,selectOtherMonths: 真});});

更新2

毕竟它不起作用.有时有效,有时无效.我在日期上单击了几次,有时还通过了验证.对于同一日期,可能存在好的和错误的验证.

这是日期字段的输出 html:

<input class="picker" data-val="true" data-val-date="日期字段必须是日期."data-val-required="日期字段是必需的."id="date" name="Item.Date" type="text" value="1.1.0001. 0:00:00"/><span class="field-validation-valid" data-valmsg-for="Item.Date" data-valmsg-replace="true"></span>

解决方案

这里完全一样的情况(部分视图)

我通过删除验证属性并在服务器端执行验证来解决它:

$('#date').removeAttr("data-val-date");

I have strange problem. My date validation doesn't work in Chrome. I've tried this answer but it didn't work for me.

I have this in my model:

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

My View:

<div class="editor-field">
@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })
@Html.ValidationMessageFor(model => model.Item.Date)
</div>

$(document).ready(function () {
    $('.picker').datepicker({
        dateFormat: 'dd.mm.yy',
        changeMonth: true,
        changeYear: true,
        selectOtherMonths: true
    });
});

Everything works in Opera and Firefox but Chrome doesn't like this type of date. I'm constantly getting the following error The field 'Date' must be a date.

Any ideas?

UPDATE

It seems there is a problem when the code is inside a partial view. When I copy that code to a main page, validation works fine.

I'm inserting partial view inside my main View simply like this:

@Html.Partial("_CreateOrEdit", Model)

And that code above is inside a partial view:

@model Pro.Web.Models.Model

<div class="editor-field">
@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })
@Html.ValidationMessageFor(model => model.Item.Date)

$(document).ready(function () {
$('.picker').datepicker({
    dateFormat: 'dd.mm.yy',
    changeMonth: true,
    changeYear: true,
    selectOtherMonths: true
});

</script>
});

UPDATE2

It doesn't work after all. Sometimes it works, sometimes not. I clicked a couple of times on dates and sometimes validation passes. For the same date there could be good and wrong validation.

This is output html for date field:

<div class="editor-field">
<input class="picker" data-val="true" data-val-date="The field Date must be a date." data-val-required="The Date field is required." id="date" name="Item.Date" type="text" value="1.1.0001. 0:00:00" />
<span class="field-validation-valid" data-valmsg-for="Item.Date" data-valmsg-replace="true"></span>
</div>

解决方案

Exact the same situation here (partial view)

I solved it by removing the validation attribute and perform validation at server side:

$('#date').removeAttr("data-val-date");

这篇关于该字段必须是日期 - Chrome 中的 DatePicker 验证失败 - mvc的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆