2009-07-07 21 views
6

मैं अपने ऐप में jquery ui डेटपिकर का उपयोग कर रहा हूं। मैंने एक इनलाइन डेटपिकर बनाया है। मुझे onChangeMonthYear के साथ समस्या है। मैंने न्यूनतम रूप से उदाहरण को सरल बना दिया है।jquery datepicker onChangeMonthYear

"पिछला" या "अगले" की Onclick

, कैलेंडर चाहिए: - पिछले/अगले महीने के लिए

  1. जाओ तदनुसार।
  2. उस महीने का पहला दिन वर्तमान चयनित तिथि के रूप में सेट करें।
  3. चेतावनी है कि तारीख

समस्या # 2 के साथ है।

मैं ऐसा करने के लिए setDate का उपयोग कर रहा हूं, और यह अनंत रिकर्सन में समाप्त हो रहा है। क्योंकि, मैंChangeMonthYear पर setDate को कॉल कर रहा हूं। और setDate आंतरिक रूप सेChangeMonthYear पर भी गोलीबारी कर रहा है।

पिछली/अगली क्लिक होने पर मैं उन 3 चीजों को कैसे प्राप्त कर सकता हूं।

उत्तर

7

एक ध्वज है कि आप अपने ईवेंट हैंडलर में क्वेरी अनंत लूप को रोकने के लिए कर सकते हैं स्थापित करने का प्रयास करें:

var changingDate = false; 
$('.selector').datepicker({ 
    onChangeMonthYear: function(year, month, inst) { 
     if (changingDate) { 
      return; 
     } 
     changingDate = true; 
     // your setDate() call here 
     changingDate = false; 
    } 
}); 
1

अनंत प्रत्यावर्तन मतलब है कि आप गलत माह जानकारी दे रहे हैं।
month

0
onChangeMonthYear: function(year, month, inst){ 
    $(this).datepicker("setDate", new Date(year, month-1, 1)); 
} 
से सुनिश्चित करें कि आप 1 घट रही है बनाओ