我有一个带有值的下拉列表 - 名称,MobileNumber和与所选下拉列表相关的输入文本框。
我希望在从下拉列表中选择名称时仅使用字母表限制文本框条目值,并且仅在选择MobileNumber时限制数字。这是我通过添加以下内容实现的。
*
On(dom.byId("dropdownid"), "keypress", function(e)){
if(dom.byId("dropdownid").value=="Name"){
On(dom.byId("textboxid"), "keypress", function(e){
if(RegularExpressionAlphabetOnlyCondition == e.charCode){
Stopping the event using e.stopEvent();
}
});
}
if(dom.byId("dropdownid").value=="MobileNumber"){
On(dom.byId("textboxid"), "keypress", function(e){
if(RegularExpressionNumbersOnlyCondition == e.charCode){
Stopping the event using e.stopEvent();
}
});
}
});
*
现在,在更改下拉列表值时,我将为下拉列表添加更改事件,并添加类似的keypressevent,其中只包含数字的regularrexpression条件。 但它还没有工作,只接受字母表。它显然没有取代已经放置的keypressevent。
如何在更改下拉列值时删除dojo中针对文本框的Keypress事件?
答案 0 :(得分:1)
on函数返回句柄
var h = On(dom.byId("textboxid"), "keypress", function(e){console.log("do Stuff"});
然后,您可以在执行新操作之前使用句柄取消侦听器
if(h)h.remove();