Javascript 有没有办法在dojo';日期文本框?

Javascript 有没有办法在dojo';日期文本框?,javascript,events,dojo,Javascript,Events,Dojo,我将dojo的DateTextBox与连接的onChange事件一起使用 有些情况下,用户选择的日期与已经选择的日期相同,但不幸的是(当然是逻辑上的)不会触发onChange事件。但是,无论用户是否再次选择了相同的值,我仍然需要触发onChange连接的操作 是否有任何方法可以将事件连接到单个/所有日期文本框天绕过该框的onChange事件?我觉得日子不好过。更好的选择是为DateTextBox选择某种类型的onSelect事件,它显然不存在…您需要连接到弹出日历上的onChange事件,而不是

我将dojo的
DateTextBox
与连接的
onChange
事件一起使用

有些情况下,用户选择的日期与已经选择的日期相同,但不幸的是(当然是逻辑上的)不会触发
onChange
事件。但是,无论用户是否再次选择了相同的值,我仍然需要触发
onChange
连接的操作


是否有任何方法可以将事件连接到单个/所有
日期文本框
绕过该框的
onChange
事件?我觉得日子不好过。更好的选择是为
DateTextBox
选择某种类型的
onSelect
事件,它显然不存在…

您需要连接到弹出日历上的
onChange
事件,而不是
DateTextBox
。问题是,每次打开calendar
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);
});