2015-10-06 4 views
1

Я создал один настраиваемый элемент управления для элемента управления datetime в одном элементе управления. Я дал три режима datetimepicker, timepicker и datepicker. Для чего я создал одно свойство CalenderMode типа enum, которое хранит эти три режима и которое значение i присваивается свойству в соответствии с тем, что я меняю datetimepicker, если я задал timepicker, тогда мой timepicker включен, если я дам datepicker, тогда выбирает date picker, и если я дам datetimepicker, тогда мой datetimepicker включен, это я обрабатываю в JQuery.datetimepicker не работает правильно

Для проверки этих данных я получил формат от 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"; 

Скриншот для выпуска является

enter image description here

Может кто-нибудь мне помочь?

ответ

1

Здесь Вы используете Rain Jquery так fromat дождя за время отличается от момента, что вы используете для проверки, так следующий формат как для формата

дождь Jquery Время: h:i A Момент времени Формат : h:mm A

Ниже приведен пример кода

Script

$(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()); 
    }); 

    }); 

Markup

<div> 
    <asp:TextBox ID="TextBox1" runat="server" CssClass="date"></asp:TextBox> 

    <asp:Label ID="message" runat="server" CssClass="message"></asp:Label> 


</div> 
Смежные вопросы