我需要在对话框打开时禁用转义键。当我单击转义按钮时,对话框关闭,交易正在提交。我尝试了以下代码片段,但它不能正常工作。
dojo.connect(dialog, "onKeyPress", function(e){
var key = e.keyCode || e.charCode;
var k = dojo.keys;
if (key == k.ESCAPE) {
event.preventDefault();
d.stopEvent(event);
}
});
你能帮忙吗?我已经搜索了很多,并没有找到适合我的问题的解决方案。 非常感谢..
答案 0 :(得分:6)
答案 1 :(得分:3)
如果要覆盖所有对话框(而不是特定实例)中的转义键,可以使用dojo/aspect:
require(['dojo/aspect', 'dijit/Dialog'], function (Aspect, Dialog) {
Aspect.around(Dialog.prototype, '_onKey', function (original) {
return function () { }; // no-op
});
});
答案 2 :(得分:0)
您可以在新文件中为Dialog小部件创建扩展名:
define(["dojo/_base/declare", "dijit/Dialog"],
function(declare, Dialog){
return declare(Dialog, {
//Prevents the 'ESC' Button of Closing the dialog
_onKey: function() { }
});
});
将文件保存到dojo目录中(例如:dojo / my / my_dialog.js),
而不是打电话:' dijit / Dialog',只需致电:' my / my_dialog'。
这将为您节省编辑每个Dialog调用的艰苦工作,
和#34; dojox / widget / DialogSimple"同样的事情;窗口小部件。强>