2012-08-28 5 views
0

지금 유효성 검사를 수행하려고하는 사용자 지정 날짜 표시기가 있습니다. 구체적으로 말하면, startDate 필드가 endDate 필드보다 먼저 왔는지 확인하려고합니다.Jquery 사용자 지정 DatePicker로 유효성 검사

내 datepicker를 클릭하고 입력 필드를 채울 때 메시지가 나타나기 전에 내 필드를 클릭 한 다음 필드에서 클릭해야합니다. jquery validate가 입력 필드의 change 이벤트가 아니라 keyup 이벤트를 수신하고 있기 때문에 이것이라고 생각합니다.

내 코드 (커피로 작성,하지만 난 자바 스크립트 답변을 받아 들일 겁니다) -

validateSearchForm:=> 
$(@el).find("#searchForm").validate({ 
    rules:{ 
    startDateInputBox:{ 
     dateISO:true, 
     lessThan: true 
    }, 
    endDateInputBox:{ 
     dateISO:true 
     lessThan: true 
    } 
    searchPurposeBox:"required" 
} 
}); 

보다 적은 -

jQuery.validator.addMethod "lessThan", ((value, element) -> 
    validDateFormat = /(\d{4})-(\d{2})-(\d{2})/ 
    startDateInput = $("#startTime").val() 
    endDateInput = $("#endTime").val() 
    startDateMatch = startDateInput.match(validDateFormat) 
    endDateMatch = endDateInput.match(validDateFormat) 
    startDateYear = startDateMatch[1] 
    startDateMonth = startDateMatch[2] 
    startDateDay = startDateMatch[3] 
    endDateYear = endDateMatch[1] 
    endDateMonth = endDateMatch[2] 
    endDateDay = endDateMatch[3] 
    startDate = new Date(startDateYear,startDateMonth,startDateDay) 
    endDate = new Date(endDateYear,endDateMonth,endDateDay) 
    if endDate < startDate 
    return false 
    return true 
), "Start time has to be before end time" 

내가 클릭하면 그래서 내가 어떻게해야합니까 내 datepicker에 잘못된 값으로 필드를 채우면 오류 메시지가 즉시 나타납니다? onkeyup 시도했지만 문제가 해결되지 않습니다.

감사

+0

확인과 같은 전화 무언가를 날짜 선택기의으로 onClose 이벤트 (있는 경우, 내가 jQuery를 UI의 날짜 선택기가으로 onClose을 가지고 알고)에 끼어 전에 무엇을했는지 맞춤 [date picker validation]을 원한다면 [this plugin] (https://github.com/elclanrs/jq-idealforms)을 클릭하십시오. – elclanrs

답변

0

I는

$("#searchForm input[name='startDateInputBox']").valid() 
관련 문제