/ / Има ли някакъв начин да активирате събития, свързани с деня в DatejoTextBox на доджо? - javascript, събития, доджо

Има ли начин да активирате събитията, свързани с деня в DateTextBox на доджото? - javascript, събития, доджо

Използвам доджо 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.