【问题标题】:datetimepicker is not working correctly日期时间选择器无法正常工作
【发布时间】: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


    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 2023-01-14
      • 2015-01-18
      • 1970-01-01
      相关资源
      最近更新 更多