我有什么:
HTML:
<div class="row">
<div class="col-sm-4">
@Html.LabelFor(model => model.EndDate, "End Date", new { @class = "control-label" })
</div>
<div class="col-sm-8">
@Html.TextBoxFor(model => model.EndDate)
</div>
</div>
<button class="btn btn-primary" type="submit">Save</button>
JavaScript的:
$(function () {
$("#EndDate").datepicker(@if (Model.EndDate != DateTime.MinValue) {
<text>{ defaultDate: new Date('@Model.EndDate') }</text>
});
@if (Model.EndDate != DateTime.MinValue) {
<text> $("#EndDate").val('@Model.EndDate.ToShortDateString()'); </text>
}
@if (Model.EndDate == DateTime.MinValue) {
<text> $("#EndDate").attr('disabled', 'true'); </text>
}
}
因此文本框绑定到日期选择器,用户可以选择手动编辑日期。 我正在研究一种验证输入文本框的日期的方法。
例如,用户可以输入85426525455这不是有效日期,在这种情况下,我想在单击“保存”按钮时显示一个vlaidation消息。
我尝试添加一个无效的onClose事件:
$("#EndDate").datepicker({
onClose:function(dateText, inst) {
try {
$("#EndDate").datepicker.parseDate('dd/mm/yy', dateText);
} catch (e) {
alert(e);
}
}
});
任何线索!
提前致谢。
答案 0 :(得分:0)
您可以这样使用$.datepicker.parseDate()
方法:
$("#EndDate").datepicker({
dateFormat: 'dd/mm/yy',
onClose: function(dateText, inst) {
try {
$.datepicker.parseDate('dd/mm/yy', dateText);
} catch (e) {
alert(e);
}
}
});
<link href="https://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<input id='EndDate'>
或者只是不允许用户使用readonly
属性手动输入日期。
$("#EndDate").datepicker({
dateFormat: 'dd/mm/yy'
});
<link href="https://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<input id='EndDate' readonly>