2

demo에서와 같이 날짜 범위에 대해 jqueryUI datepicker를 사용하고 있습니다. 다음을 확인하지 못했습니다. 앞으로의 날짜로 다음 경우부터 :날짜 범위의 jQueryUI datepicker가 키보드로 날짜 텍스트 상자가 지워질 때 유효성을 검사하지 못합니다.

  1. FROM 날짜에 2011 년 11 월 19 일을 선택하십시오. 이제 TO datepicker에서 2011 년 11 월 달에 가서 "11/19/2011"전에 날짜를 선택할 수 없습니다. 이것은 적절하고 예상되는 동작입니다.

  2. 커서를 FROM date picker 텍스트 상자에 마우스를 사용하여 놓습니다. 선택 날짜 (11/11/2011)를 선택하고 삭제합니다. 즉 텍스트 상자를 비워 둡니다. 이 시점에서 2 개의 텍스트 상자는 비어 있습니다.

  3. 이제 'TO'datepicker로 이동하십시오. NOV 2011을 확인하십시오. 2011-11-19 이전의 모든 날짜는 여전히 작동하지 않아 작동하지 않습니다.

내가 텍스트 상자 readonly를 만들어이 문제를 해결하려면하지만 사용자가 마우스와 키보드로 날짜뿐만 아니라 선택을 입력 할 수 있도록 내가이 문제에 대한 더 나은 솔루션을 원한다. minDatemaxDate을 설정하기위한 논리가 (당신이 완전히 날짜 선택기 필드에서 날짜를 제거 할 때 전원 해고하지 않는)을 select 이벤트 리스너에 위치하기 때문에

답변

1

이다. 대신 change 이벤트에 바인딩 할 수 있습니다 :

var dates = $("#from, #to").datepicker({ 
    defaultDate: "+1w", 
    changeMonth: true, 
    numberOfMonths: 3, 
}).bind("change", function() { 
    var option = this.id == "from" ? "minDate" : "maxDate", 
     selectedDate = this.value, 
     instance = $(this).data("datepicker"), 
     date = $.datepicker.parseDate(instance.settings.dateFormat || 
      $.datepicker._defaults.dateFormat, selectedDate, instance.settings); 
     dates.not(this).datepicker("option", option, date);   
}); 

예 : 많은 앤드류 그것은 작동http://jsfiddle.net/TMnRX/

+0

감사합니다. onSelect 이벤트 외에도 'change'이벤트를 추가했습니다. 지식 공유를 계속하십시오. –

+0

@KyasaMadhavi : 친절한 말에 감사드립니다. 도와 줘서 기뻐요! –

관련 문제