2011-05-12 2 views
0

두 날짜 선택 자 사이에 입력 한 일 수 사이의 유효성을 검사해야하는 요구 사항이 있습니다 [날짜 : &까지]. 내 요구 사항은 100 일을 초과해서는 안된다는 것입니다.도착 일과 출발 일 사이의 일수에 대한 ASP.Net 유효성 확인

validator를 제공하는 asp.net으로 할 수있는 방법이 있습니까? 내가 가서 customValator (클라이언트와 서버 측 모두)를 작성할 수 있지만 CompareValidator 또는 RangeValidator를 사용하여 수행 할 수 있는지 궁금하십니까? 비슷한 후에 찾는 경우에 일을 할 것입니다 기능 아래

답변

0

좀에서

 function CheckDateRange(start, end, numberOfDays) { 

     // Parse the entries 
     var startDate = Date.parse(start); 
     var endDate = Date.parse(end); 
     // Make sure they are valid 
     if (isNaN(startDate)) { 
      alert("The start date provided is not valid, please enter a valid date."); 
      return false; 
     } 
     if (isNaN(endDate)) { 
      alert("The end date provided is not valid, please enter a valid date."); 
      return false; 
     } 
     // Check the date range, 86400000 is the number of milliseconds in one day 
     var difference = (endDate - startDate)/(86400000 * numberOfDays); 
     if (difference < 0) { 
      alert("The start date must come before the end date."); 
      return false; 
     } 
     if (difference >= 1) { 
      alert("The range must not exceed 100 days."); 
      return false; 
     } 
     return true; 
    } 

있어 도움이 대답 다소 유사한 post

1

사용자 정의 유효성 검사기 사용해보십시오 :

<asp:CustomValidator ID="valCustmCheckDate" runat="server" ErrorMessage="The date difference should not be greater than 100 days" ForeColor="Red" ValidationGroup="LoginUserAdd" ClientValidationFunction="CompareStartAndEndDate"></asp:CustomValidator> 

전화 다음 function in javascript :

function CompareStartAndEndDate(sender,args) { 
    var txtFromExpiryDate = document.getElementById('<%=txtFromDate.ClientID %>');//dd/mm/yyyy format 
    var txtToExpiryDate = document.getElementById('<%=txtToDate.ClientID %>');//dd/mm/yyyy format 

    var a = txtFromDate.value.split('/'); 
    var b = txtToDate.value.split('/'); 

    var FromDate = new Date(a[2], a[1] - 1, a[0]); 
    var ToDate = new Date(b[2], b[1] - 1, b[0]); 

     var newFromDate =FromDate.getTime(); 
     var newToDate=ToDate.getTime(); 

     var dateDiffInMilliseconds= newToDate-newFromDate; 

    var dateDiffInDays=dateDiffInMilliseconds/(1000 * 60 * 60 * 24)  


    if (dateDiffInDays>100) { 
      args.IsValid = false; 
    } 
    else { 
      args.IsValid = true; 
    } 

    } 

희망이 당신을 위해 그것을 할 것입니다 ...

+0

고마워요. 그래, 난 항상 옵션을 손에 있었지만 누구도 비교 또는 범위 검사기를 사용하여 스마트 구현을했는지 알고 싶었어요. 나는 실현 가능하지 않다는 것을 알았지 만, 거기에는 실제적인 현명한 사람들이있다. :) – DotNetInfo

관련 문제