2013-05-20 2 views
1

현재 양식 내의 필드에 대해 유효성 검사가 필요한 ASP.NET 응용 프로그램 (SharePoint)을 작성 중입니다. 나는 현재 날짜와 시간의 유효성을 검사하는 방법을 찾고 있는데, 여기에는 두 날짜를 비교하는 것 (보다 작거나 더 큼)과 유효성 검사 형식이 포함됩니다.유효한 시간에 자바 스크립트 라이브러리 및 자바 스크립트 사용 시간이

처음에는 datejs을 보았습니다.하지만 2007 년 이후에는 업데이트가 없었습니다. 마지막 릴리스에서는 isAfter 및 isBefore에 따라 두 가지 기능이 누락 된 것으로 보였으므로 moment javascript library을 사용하도록주의를 전환했습니다.

현재 시작일, 시작 시간, 종료일 및 종료 시간 텍스트 입력란이 있습니다. 모든 입력 방법이 필요하므로 Start DateTime 및 EndDateTime을 입력 할 필요가 없습니다. 또한 jQuery Date Picker 및 jquery-ui-timepicker-addon을 사용하여 날짜와 시간을 선택합니다. 이 11:59으로 조정됩니다 -

11:90

: 내가 가지고있는

한 가지 문제는 시간 필드에 시간을 입력 할 때, 나는 다음과 같은 입력 할 수 있습니다.

11 : 100 - 조정되지 않습니다.

여기는 시간을 확인하기 위해 사용자 지정 유효성 검사 JavaScript 함수에 값을 제공하는 곳입니다.

function ValidateTimeFormat(objSource, objArgs) { 
    var strToCompare = objArgs.Value; 
    var timeFormat = 'HH:mm'; 
    var expectedEndDateObj = moment(strToCompare, timeFormat); 
    objArgs.IsValid = expectedEndDateObj.isValid(); 
} 

ASP.NET 조각으로 : 이것은 다음과 같은 코드를 사용하여 수행됩니다 momentjs에 따르면

<div class="label-div"> 
    <asp:Label ID="StartTimeLabel" runat="server" Text="Actual Start Time:"></asp:Label> 
    <asp:RequiredFieldValidator ID="ActualStartTimeRequiredValidator" 
     runat="server" 
     ControlToValidate="StartTimeTextBox" 
     ErrorMessage="Actual start time is required field" 
     Display="Dynamic">*</asp:RequiredFieldValidator> 
    <asp:CustomValidator ID="ActualStartTimeCustomValidator" 
     runat="server" 
     ControlToValidate="StartTimeTextBox" 
     ErrorMessage="Actual start time format is not correct" 
     Display="Dynamic" 
     ClientValidationFunction="ValidateTimeFormat">*</asp:CustomValidator> 
</div> 
<asp:TextBox ID="StartTimeTextBox" runat="server" ></asp:TextBox></li> 

를 (필자는 jQuery를 시간 선택 도구를 제거하는 경우) :

  • 11:90 유효하지 않다.
  • 11:100이 유효합니다.

나는 momentjs에 대한 포럼이나 지원을 보지 못했기 때문에 여기서 물어볼 생각입니다. 자신의 커스텀 검증 루틴에서 regex를 사용하는 것을 포함하여 시간을 검증하는 방법은 무수히 많습니다. 그러나 지금은 휠을 재발 명하고 싶지는 않습니다. 나는 그것을하기 위해 사용하기 좋은 도서관을 원합니다.

그냥 확인 isValid의 momentjs의 문서를 인용합니다 :

주요 moment() 기능은 매우 유연하고 입력을 구문 분석에 넘쳐 수 있습니다. 예를 들어, moment("2012-01-40", "YYYY-MM-DD")은 월에 날짜 값을 오버플로하여 실제 순간 2 월 9 일 (1 월 31 일 +2 월 9 일)이됩니다.

이것은 150 일 또는 1 일 500 분과 같은 것을 가져 오는 데 유용 할 수 있지만 사용자 입력을 구문 분석 할 때 문제가 될 수 있습니다.

순간에 대한 입력이 실제로 유효한 날짜인지 확인하기 위해 순간 # isValid가 추가되었습니다.

라이브러리가 Date를 감싸는 래퍼 인 점을 감안할 때 자바 스크립트 문제인지 순간적인지는 확실하지 않습니다.

의견이 있으십니까?

+0

가 읽어 보시기 바랍니다 : 유효을 [해야 '안녕' , '감사', 태그 라인 및 인사말은 게시물에서 삭제 되나요?] (http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts) – Antony

답변

0

이것은 순간적인 문제인 것처럼 보입니다. 현재로 2.3.여기에 언급 한 바와 같이 0 당신은 엄격한 해석을 사용하여 시도 할 수 있습니다 - 난 아직도 순간 파서를 찾을 그러나 http://momentjs.com/docs/#/parsing/string-format/

같이 시간을 고려 "01 : K0" ": mm A를 HH"

관련 문제