我在一个控件中为日期时间选择器创建了一个自定义控件我已经给出了三个模式datetimepicker,timepicker和datepicker.For我已经创建了一个名为CalederMode的属性,类型为enum,它存储了这三种模式以及我给予的值该属性根据我正在更改datetimepicker,如果我给timepicker然后我的timepicker启用,如果我给datepicker然后日期选择器启用,如果我给datetimepicker然后我的datetimepicker启用这我在jquery处理。
为了验证这些我从c#给出的格式和我在客户端使用的格式,但现在问题是如果我的时间选择器或日期选择器已启用,并且从timepicker我选择时间但在文本框中显示日期时间对于日期选择器也是相同的,它也显示日期时间。
我不明白这是什么问题。
我的jquery代码,我在使用赋值给属性更改日历模式是
$(document).ready(function () {
$('.calendercssclass').each(function () {
var result;
var value = $(this).closest('.DateControl').find("input[type=hidden][id*='CalenderTypeModeID']").val();
if (value == "timepicker") {
$(this).datetimepicker({
timepicker: true,
datepicker: false
//mask: true
});
}
else if (value == "datepicker") {
$(this).datetimepicker({
timepicker: false,
datepicker: true
// mask: true
});
}
else {
$(this).datetimepicker({
//mask: true
});
}
});
});
要提供验证格式,我使用以下代码
function ValidateFormatOfDatecontrol(sender, args) {
debugger;
args.IsValid = true;
var format;
$('.calendercssclass').each(function () {
var result;
var value = $(this).closest('.DateControl').find("input[type=hidden][id*='CalenderTypeModeID']").val();
if (value == "timepicker") {
format = $(this).closest('.DateControl').find("input[type=hidden][id*='ClientTimeFormatID']").val();
var answer = $(this).val();
if (answer != '') {
//Moment.js inbuilt function for validating the date format .
args.IsValid = moment(answer, format, true).isValid();
}
}
else if (value == "datepicker") {
format = $(this).closest('.DateControl').find("input[type=hidden][id*='ClientDateFormatID']").val();
var answer = $(this).val();
if (answer != '') {
//Moment.js inbuilt function for validating the date format .
args.IsValid = moment(answer, format, true).isValid();
}
}
else if (value == "datetimepicker") {
format = $(this).closest('.DateControl').find("input[type=hidden][id*='ClientDateTimeFormatID']").val();
var answer = $(this).val();
if (answer != '') {
//Moment.js inbuilt function for validating the date format .
args.IsValid = moment(answer, format, true).isValid();
}
}
});
}
用于提供验证格式的服务器端代码是
this.clientDateFormat.Value = "MM/DD/YYYY";
this.clientDateTimeFormat.Value = "mm/dd/yyyy H:i A";
this.clientTimeFormat.Value = "H:i";
问题的截图是
有人可以帮我吗?
答案 0 :(得分:1)
这里你正在使用Rain Jquery所以Rain的时间与你用于验证的时刻不同,所以下面是两种格式
Rain Jquery时间格式:h:i A
时刻格式:h:mm A
以下是示例代码
<强>脚本强>
$(document).ready(function () {
$(".date").datetimepicker({
format: 'h:i A',
datepicker:false
});
$(".date").change(function () {
var format = "h:mm A";
$('#message').text(moment($(".date").val(), format, true).isValid());
});
});
<强>标记强>
<div>
<asp:TextBox ID="TextBox1" runat="server" CssClass="date"></asp:TextBox>
<asp:Label ID="message" runat="server" CssClass="message"></asp:Label>
</div>