मैं "डोज़ो का उपयोग कर रहा हूँ" DateTextBox
एक जुड़े के साथ onChange
घटना।
ऐसे मामले हैं जो उपयोगकर्ता पहले से ही चुने गए उसी दिन का चयन करते हैं, जो दुर्भाग्य से (लेकिन तार्किक रूप से) "टी फायर ए" नहीं है onChange
घटना। लेकिन मुझे अभी भी ट्रिगर करने की आवश्यकता है onChange
उपयोगकर्ता चाहे फिर से उसी मूल्य को चुना या नहीं, इस बात की परवाह किए बिना।
क्या घटनाओं को एकल / सभी से जोड़ने का कोई तरीका है DateTextBox
दिन दरकिनार onChange
बॉक्स की घटना? मुझे लगता है कि दिन अपने आप ही नहीं दिखेंगे। एक और बेहतर विकल्प किसी तरह का होगा onSelect
के लिए घटना DateTextBox
, जो स्पष्ट रूप से मौजूद नहीं है ...
उत्तर:
जवाब के लिए 2 № 1आपको कनेक्ट करने की आवश्यकता है onChange
पॉपअप कैलेंडर पर घटना, नहीं DateTextBox
। समस्या यह है कि हर बार जब आप कैलेंडर खोलते हैं DateTextBox
पहले दिखाए गए उदाहरण को नष्ट कर देता है और नए उदाहरण बनाता है dijit.Calendar
(में संदर्भित DateTextBox.dropDown
संपत्ति)।
इसलिए आपको इससे जुड़ने की आवश्यकता है DateTextBox.openDropDown()
से कनेक्ट करने के लिए विधि DateTextBox.dropDown.onChange()
, अर्थात। Calendar.onChange()
:
var dateBox = dijit.byId("dateBox");
var eventHandle;
dojo.connect(dateBox, "onChange", function(value) {
// fires only if clicked date changed
console.log("onChange");
});
dojo.connect(dateBox, "openDropDown", function() {
eventHandle = dojo.connect(dateBox.dropDown, "onChange", function(value) {
// fires every time date is clicked
console.log(value.toString());
});
});
dojo.connect(dateBox, "closeDropDown", function() {
dojo.disconnect(eventHandle);
});
इस उदाहरण को कार्रवाई में देखें jsFiddle.