2013-09-24 5 views
5

누구나 datepicker의 onselect 이벤트를 트리거하는 방법을 알려줄 수 있습니까? 내 코드 datepickers altfield의 값을 기반으로 데이터베이스에서 일부 데이터를 당기는 잘하고 있지만 페이지를로드 할 때 현재 날짜 onselect 이벤트가 발생하지 않으며 아무것도 표시하지 않습니다; 그래서 나는 그것을 수동으로하고 싶다.수동으로 datepicker onselect 이벤트를 실행하십시오.

<script> 
    $("#datepicker").datepicker 
    (
    { 
      altField: '#sheet', 
      onSelect: function load() { 
      $(document).ready(function() { 
        $.ajax({ 
        type: 'POST', 
        url: 'test.php', 
        data: {sheetid: $('#sheet').val()}, 
        success: function(data) 
        { 
         $("#content").html(data); 
        } 
       }); 

     }); 
     }, 
      firstDay: 1}); 
    </script> 
+1

시도'body'에 날짜 선택기에 대한 클릭 이벤트'onload' 기능 또는'$를 트리거 (문서) .ready()''$를 사용하여 ('#의 날짜 선택기 ') .click();' – rps

답변

15

당신이 바로 날짜의 설정 후 날짜 선택기에 click을 트리거 할 수 있습니다.

코드 :

$(document).ready(function() { 
    $("#datepicker").datepicker({ 
     altField: '#sheet', 
     onSelect: function(date) { 
      alert(date); 
     }, 
     firstDay: 1 
    }); 

    $('#datepicker').datepicker("setDate", new Date(2013,09,22)); 
    $('.ui-datepicker-current-day').click(); // rapresent the current selected day 

}); 

데모 : http://jsfiddle.net/IrvinDominin/DynuW/ 나는 datepicker.js 파일의 소스 코드에서이했다

+1

마술 트릭 hehe, 고마워요! – Daria

0

. this은 입력 요소로 대체해야합니다 (jquery 객체가 아니라 실제 DOM 요소). 제 경우에는 keydown 이벤트에서 이것을 호출했습니다.

// this is SUCH a hack. We need to call onselect to call any 
// specific validation on this input. I stole this from the datepicker source code. 
var inst = $.datepicker._getInst(this), 
onSelect = $.datepicker._get(inst, "onSelect"); 
if (onSelect) { 
    dateStr = $.datepicker._formatDate(inst); 
    onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); 
} 
0

최고의 솔루션

var inst = $.datepicker._getInst($("#date")[0]); 
$.datepicker._get(inst, 'onSelect').apply(inst.input[0], [$("#date").datepicker('getDate'), inst]); 
+0

이것이 왜 "최고의 솔루션"인지 또는 적어도 어떻게 작동하는지 더 설명해 주시겠습니까? jQuery datepicker 모듈의 내부 "숨겨진"함수를 "최상의"것은 말할 것도없이 좋은 솔루션이라고 생각하지 않습니다. –

관련 문제