Javascript 让Dojo 1.9处理关键事件

Javascript 让Dojo 1.9处理关键事件,javascript,dojo,Javascript,Dojo,我正在尝试用Dojo 1.9连接Javascript事件处理程序,以便在任何时候按下一个键时,都会检查该值是否对它所在的字段有效 但是,当我按下一个键时,我无法启动事件。可能是打字错误或是什么愚蠢的事,但我就是看不出来 下面是一个示例输入标记和我用来连接输入的JS代码——有人能告诉我问题所在吗: <input id="field2" name="field2" data-dojo-type="dijit/form/ValidationTextBox" data-

我正在尝试用Dojo 1.9连接Javascript事件处理程序,以便在任何时候按下一个键时,都会检查该值是否对它所在的字段有效

但是,当我按下一个键时,我无法启动事件。可能是打字错误或是什么愚蠢的事,但我就是看不出来

下面是一个示例输入标记和我用来连接输入的JS代码——有人能告诉我问题所在吗:

<input id="field2" name="field2"
       data-dojo-type="dijit/form/ValidationTextBox"
       data-dojo-props="constraints:{
       required: true,
       maxLength: 3},
        pattern:'[0-9]{1,2}',
        invalidMessage:'Please enter a number in this field.',
        rangeMessage:'Please enter a number between  and 99.',
        missingMessage:'This value is required.' "
        />



<script type="text/javascript">
    require([
        "dojo/query",
        "dojo/parser",
        "dojo/dom",
        "dojo/on",
        "dojox/validate",
        "dojox/validate/web",
        "dojox/validate/check",
        "dojox/validate/us",
        "dojo/domReady!"
    ],
            function ( query, parser, dom, on, validate ) {

                var inputs = query("input");
                for (i = 0; i<inputs.length; i++) {
                    var node = inputs[i];
                    on(node, "keydown", function(e) {
                        alert("I got called!");
                    });
                };

            });
</script>

要求([
“dojo/query”,
“dojo/parser”,
“dojo/dom”,
“dojo/on”,
“dojox/validate”,
“dojox/validate/web”,
“dojox/验证/检查”,
“dojox/validate/us”,
“dojo/domReady!”
],
函数(查询、解析器、dom、on、验证){
var输入=查询(“输入”);

对于(i=0;i由于您正在创建一个dojo ValidationTextBox,dojo通常会在输入周围创建一些包装器来处理诸如按键、按键等事件。这些包装器也会停止传播,因此您可能需要监听小部件本身发出的事件

请尝试以下方法:

var inputs = query(".dijitTextBox"); //Searching for all textboxes
for (i = 0; i<inputs.length; i++) {
  var node = inputs[i];
  var nodeWidget = registry.byNode(node);
  on(nodeWidget, "keydown", function(e) {
    alert("I got called!");
  });
};
var inputs=query(“.dijitTextBox”);//搜索所有文本框
对于(i=0;i