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