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