2013-09-24 19 views
5

क्या कोई मुझे बता सकता है कि आप डेटपिकर की अचयनित घटना को कैसे ट्रिगर करते हैं? मेरा कोड अच्छी तरह से काम कर रहा है (डेटपिकर्स altfield के मूल्य के आधार पर डेटाबेस से कुछ डेटा खींच रहा है) लेकिन जब पृष्ठ लोड होता है तो यह वर्तमान तिथि पर अचयनित घटना को ट्रिगर नहीं करता है और यह कुछ भी प्रदर्शित नहीं करता है; इसलिए मैं इसे मैन्युअल रूप से करना चाहता हूं।डेटपिकर को मैन्युअल रूप से ईवेंट का चयन करें

<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' में अपने datepicker के लिए एक क्लिक करें घटना' onload' समारोह या '$ ट्रिगर कोशिश (document) .ready()' '$ का उपयोग कर ('# datepicker ') .click(); ' – rps

उत्तर

15

आप सही तारीख के सेट के बाद datepicker पर एक 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/

+1

जादू चाल हे, धन्यवाद! – Daria

0

मैं datepicker.js फ़ाइल के स्रोत कोड से ले लिया। ध्यान दें कि this को आपके इनपुट तत्व (jquery ऑब्जेक्ट, वास्तविक डोम तत्व नहीं) के साथ प्रतिस्थापित किया जाना चाहिए। मेरे मामले में, मैं इसे एक कीडाउन घटना से बुला रहा था।

// 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 डेटपिकर मॉड्यूल के आंतरिक "छिपा" कार्यों के उपयोग पर विचार नहीं करता, अकेले "सर्वश्रेष्ठ" को छोड़ दें। –

संबंधित मुद्दे