jquery 使用 mvc 的不同浏览器中的日期选择器抛出错误
jquery datepicker throwing error in different browsers with mvc
我的视图显示数据库中的日期
<div class="input-group">
@Html.TextBoxFor(model => model.domain_renew_date, "{0:dd/MMM/yyyy}", new { @type = "datetime", @class = "form-control" })
@Html.ValidationMessageFor(model => model.domain_renew_date, "", new { @class = "text-danger" })
</div>
我的 javascript 用于日期选择器
<script type="text/javascript">
$(document).ready(function () {
$('input[type="datetime"]').datepicker({
dateFormat: "dd/MM/yy",
changeMonth: true,
changeYear: true,
yearRange: "c-10:c+10"
});
});
</script>
声明 属性 的模型
[Display(Name = "Date of Renewal")]
[DataType(DataType.Date)]
[RequiredIf("domain_flag", "1", ErrorMessage = "Enter Renew Date")]
public DateTime? domain_renew_date { get; set; }
在web.config
<system.web>
<globalization uiCulture="en" culture="en-GB" />
</system.web>
这在 chrome 和 Firefox 中工作得很好。但在 IE 和 Safari 中出现以下错误
The field Date of Renewal must be a date
可以对代码进行哪些更改以使其在所有浏览器中都能完美运行?
通过添加以下代码解决了错误
<script>
jQuery.validator.addMethod(
'date',
function (value, element, params) {
if (this.optional(element)) return true;
var ok = true;
try {
$.datepicker.parseDate('dd-M-yy',value);
} catch (err) {
ok = false;
}
return ok;
},
'Must enter date in dd-M-yy format.'
);
我的视图显示数据库中的日期
<div class="input-group">
@Html.TextBoxFor(model => model.domain_renew_date, "{0:dd/MMM/yyyy}", new { @type = "datetime", @class = "form-control" })
@Html.ValidationMessageFor(model => model.domain_renew_date, "", new { @class = "text-danger" })
</div>
我的 javascript 用于日期选择器
<script type="text/javascript">
$(document).ready(function () {
$('input[type="datetime"]').datepicker({
dateFormat: "dd/MM/yy",
changeMonth: true,
changeYear: true,
yearRange: "c-10:c+10"
});
});
</script>
声明 属性 的模型
[Display(Name = "Date of Renewal")]
[DataType(DataType.Date)]
[RequiredIf("domain_flag", "1", ErrorMessage = "Enter Renew Date")]
public DateTime? domain_renew_date { get; set; }
在web.config
<system.web>
<globalization uiCulture="en" culture="en-GB" />
</system.web>
这在 chrome 和 Firefox 中工作得很好。但在 IE 和 Safari 中出现以下错误
The field Date of Renewal must be a date
可以对代码进行哪些更改以使其在所有浏览器中都能完美运行?
通过添加以下代码解决了错误
<script>
jQuery.validator.addMethod(
'date',
function (value, element, params) {
if (this.optional(element)) return true;
var ok = true;
try {
$.datepicker.parseDate('dd-M-yy',value);
} catch (err) {
ok = false;
}
return ok;
},
'Must enter date in dd-M-yy format.'
);