【发布时间】:2016-01-02 20:43:15
【问题描述】:
我在一个控件中为日期时间选择器创建了一个自定义控件,我提供了三种模式 datetimepicker、timepicker 和 datepicker。为此,我创建了一个名为 CalenderMode 的属性,其类型为枚举,用于存储这三种模式以及我被赋予的值根据我正在更改 datetimepicker 的属性,如果我给定 timepicker 然后我的 timepicker 启用,如果我给 datepicker 然后日期选择器启用,如果我给 datetimepicker 然后我的 datetimepicker 启用这是我在 jquery 处理。
为了验证这些,我从 c# 获得了格式,并且我在客户端使用了该格式,但现在的问题是,如果我的时间选择器或日期选择器已启用,并且我正在从时间选择器选择时间,但在文本框中显示日期时间日期选择器也是一样的,它也显示日期时间。
这里我不明白是什么问题。
我使用将值分配给属性来更改日历模式的 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";
问题截图
有人可以帮我吗?
【问题讨论】:
标签: javascript c# jquery datepicker