2013-09-24 24 views
5

Tarih seçicinin başlangıç ​​etkinliğini nasıl tetiklersiniz? Kodum iyi çalışıyor (veripayttıncı veri tabanının değerine bağlı olarak bir veri tabanından veri alıyor) ama sayfa yüklendiğinde güncel tarihte olayı başlatmaz ve hiçbir şey göstermez; bu yüzden bunu manuel olarak yapmak istiyorum.Datepicker olayı olayını el ile gerçekleştirme

<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

deneyin 'body' da datepicker için bir tıklama olayını' onload' işlev veya '$ tetikleyen (document) .ready()' '$ kullanarak ('# datepicker ') .click(); ' – rps

cevap

15

Haklısınız tarihten dizisinden sonra datepicker bir click tetikleyebilir.

Kodu:

$(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 

}); 

Demo: http://jsfiddle.net/IrvinDominin/DynuW/ Ben datepicker.js dosyanın kaynak kodundan bu aldı

+1

Sihir numarası, teşekkürler! – Daria

0

. this'un giriş öğenizle değiştirilmesi gerektiğini unutmayın (jquery nesnesi değil, gerçek dom öğesi). Benim durumumda, bunu bir tuş olayından çağırıyordum.

// 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

iyi çözüm

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

Bunun neden "en iyi çözüm" olduğunu veya en azından nasıl çalıştığını açıklayabilir misiniz? JQuery datepicker modülünün dahili "gizli" işlevlerinin, "en iyi" olmak üzere iyi bir çözüm olacağını düşünmüyorum. –

İlgili konular