0

我有两个共享点日期时间控件,其中 timeOnly=true。我需要验证为必填字段并验证为一个控件小时值必须大于和等于另一个。我想在客户端做。

注意:使用 timeOnly="true" 意味着只需要验证小时和分钟。

4

2 回答 2

0

创建了一个 asp.net 自定义验证器来比较两个日期时间控件的小时和分钟部分。并从asp.net 自定义验证器的属性中
调用 javascript 函数。 功能在这里:ClientValidationFunction

        function ValidateHour&Minute(sender, args){
            var startDateHour = document.getElementById("<%=DateTimeControlStartDate.Controls[1].ClientID %>").value;// gets value from hours dropdown list for 1st datetime control
            var startDateMinute = document.getElementById("<%=DateTimeControlStartDate.Controls[2].ClientID %>").value;// gets value from minutes dropdown list for 1st datetime control
            var timeStart = new Date();
            var timeEnd = new Date();
            var strStartHour;
            var hourType;
            hourType = startDateHour.split(' '); 
            if (hourType[1] == "AM") {
                startDateHour=startDateHour.split(' ');
                strStartHour = startDateHour[0];
            }
            else {
                startDateHour=startDateHour.split(' '); 
                strStartHour = startDateHour[0]; 
                strStartHour = parseInt(strStartHour) + 12; 
            }
            timeStart.setHours(strStartHour, startDateMinute, 0, 0); 
            var strEndHour;
            var endDateHour = document.getElementById("<%=DateTimeControlEndDate.Controls[1].ClientID %>").value;// gets value from hours dropdown list for 2nd datetime control
            var endDateMinute = document.getElementById("<%=DateTimeControlEndDate.Controls[2].ClientID %>").value;// gets value from minutes dropdown list for 2nd datetime control
            hourType = endDateHour.split(' ');
            if (hourType[1] == "AM") {
                endDateHour=endDateHour.split(' ');
                strEndHour = endDateHour[0]; 
            }
            else {
                endDateHour= endDateHour.split(' ');
                strEndHour = endDateHour[0]; 
                strEndHour = parseInt(strEndHour) + 12; 
            }
            timeEnd.setHours(strEndHour, endDateMinute, 0, 0);
            if (timeStart < timeEnd) {
                args.IsValid = true;

            }
            else {
                args.IsValid = false;
            }
        }
于 2012-11-06T12:18:05.850 回答
0

通过在 Google 上搜索短语 - sharepoint datetimecontrol validation - 不使用引号,您会找到几个很好的解决方案

于 2012-11-06T19:39:42.740 回答