如何替换道场中的按键事件?
How to replace keypress event in dojo?
我有一个下拉菜单,其中包含值名称、手机号码和与所选下拉菜单相关的输入文本框。
我想在从下拉列表中选择 Name 时限制文本框条目值仅包含字母,而在选择 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();
}
});
}
});
*
现在,在更改下拉列表值时,我正在为下拉列表添加更改事件,并添加类似的按键事件,其正则表达式条件仅为数字。
但是它不起作用并且仍然只接受字母表。它显然没有替换已经放置的按键事件。
如何在 dojo 中删除下拉列表值更改时文本框的按键事件?
on函数返回句柄
var h = On(dom.byId("textboxid"), "keypress", function(e){console.log("do Stuff"});
然后您可以使用句柄取消它的侦听器,然后再进行新的侦听
if(h)h.remove();
我有一个下拉菜单,其中包含值名称、手机号码和与所选下拉菜单相关的输入文本框。
我想在从下拉列表中选择 Name 时限制文本框条目值仅包含字母,而在选择 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();
}
});
}
});
*
现在,在更改下拉列表值时,我正在为下拉列表添加更改事件,并添加类似的按键事件,其正则表达式条件仅为数字。 但是它不起作用并且仍然只接受字母表。它显然没有替换已经放置的按键事件。
如何在 dojo 中删除下拉列表值更改时文本框的按键事件?
on函数返回句柄
var h = On(dom.byId("textboxid"), "keypress", function(e){console.log("do Stuff"});
然后您可以使用句柄取消它的侦听器,然后再进行新的侦听
if(h)h.remove();