/ / क्या dojo के DateTextBox में दिन-संबंधित घटनाओं को सक्षम करने का कोई तरीका है? - जावास्क्रिप्ट, घटनाओं, डोजो

क्या डोजो के डेटटेक्स्टबॉक्स में दिन-संबंधित घटनाओं को सक्षम करने का कोई तरीका है? जावास्क्रिप्ट, घटनाओं, डोजो

मैं "डोज़ो का उपयोग कर रहा हूँ" 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.