2012-12-20 6 views
2

내가 복사하고 JS 날짜 유효성 검사기 수정 한 자바 스크립트 - 나는 JQuery와 모달 폼의 일부로 사용하고 있습니다 (http://www.javascriptkit.com/script/script2/validatedate.shtml)날짜 유효성 검사 오류

에서를, 그것은 나를 최초 기준 과거를 얻을하지 않습니다 .. 는 2012년 12월 25일의 값이 반환 입력 할 때 값이 형태로 날짜 선택기의 JQuery와 UI

function checkDate(d, n){ 
     if (d.val().length > 0) { 
      var validformat = /^\d{2}\/\d{2}\/\d{4}$/; //Basic check for format validity 
      if (!validformat.test(d.value)) { 
       d.addClass("ui-state-error"); 
       updateTips(n + " must be a valid date."); 
       return false; 
      } else { //Detailed check for valid date ranges 
       var monthfield = d.value.split("/")[0] 
       var dayfield = d.value.split("/")[1] 
       var yearfield = d.value.split("/")[2] 
       var dayobj = new Date(yearfield, monthfield-1, dayfield) 
       if ((dayobj.getMonth()+1 != monthfield) || (dayobj.getDate() != dayfield) || (dayobj.getFullYear() != yearfield)) { 
        d.addClass("ui-state-error"); 
        updateTips("Invalid Day, Month, or Year range detected. Please correct and submit again." + n + " must be a valid date."); 
        return false; 
       } 
      } 
      return true; 
     } 
    } 

를 넣어 경우에도 ... "통지 날짜가 유효한 날짜이어야합니다." updateTips의 (n + "유효한 날짜 여야합니다."); 라인 ...

도와주세요 ...

+1

'25분의 12/2012'처럼, 좀 더 변수를 사용입니까? –

+2

^세상 끝은 그 전에 있기 때문에 나는 그렇지 않다고 말하고 싶습니다. – elclanrs

+0

이 질문에 대한 내 대답을 시도하십시오. http://stackoverflow.com/questions/11218181/best-way-to-validate-date-string-format-via-jquery/11218271#11218271 – elclanrs

답변

2

나는 d이 무엇인지 확실하지 않다. DOM 노드입니까? 그러면 .val()에 전화 할 수 없습니다. jQuery 래퍼 객체인가요? 그런 다음 .value 속성에 액세스하면 undefined이되며 해당 값의 문자열이 사용자의 형식과 일치하지 않습니다. 유효한 날짜는

var value = d.val(); // to test length, regex and use in split 
… 
var parts = value.split("/"); // to get year, month and day part 
+0

죄송합니다 - d 값이 전달됩니다 ... 전화는 다음과 같습니다 : bValid = bValid && checkDate (notification_date, "Notification Date"); 여기서 notification_date는 필드 이름이 – jpmyob

+0

이고 d.val()이 잘 전달됩니다 ... – jpmyob