正在收听dijit/form/TextBox上的tab键

Listening to tab key on dijit/form/TextBox

本文关键字:TextBox 上的 tab form dijit      更新时间:2023-09-26

我使用的是dojo 1.10.4,我需要监听所有TextBox上的tab键。

有可能检测到这个特定事件吗?

目前我正在使用onFocus,但并没有解决我的问题,因为它在所有情况下都是在用户单击TextBox时触发的。

https://jsfiddle.net/92uc0tmn/8/

require(["dijit/form/TextBox", "dijit/registry", "dojo/domReady!"], function(TextBox, registry) {

  var textarea = new TextBox({
    name: "myarea",
    value: "Some value",
    intermediateChanges: true,
    selectOnClick: true,
    onChange: function() {}
  }, "myarea").startup();

  var textarea2 = new TextBox({
    name: "myarea2",
    value: "Some value",
    intermediateChanges: true,
    selectOnClick: true,
    onChange: function() {}
  }, "myarea2").startup();
  var textarea3 = new TextBox({
    name: "myarea3",
    value: "Some value",
    intermediateChanges: true,
    selectOnClick: true,
    onChange: function() {}
  }, "myarea3").startup();
});

我能够使用以下代码解决我的问题,基本上,我听onKeyPressTAB键。

不过,我不确定这种方法是否是最好的方法。欢迎任何想法。

https://jsfiddle.net/4grtLtvv/

require(["dijit/form/TextBox", "dijit/registry", "dojo/keys", "dojo/domReady!"], function(TextBox, registry, keys) {

  var textarea = new TextBox({
    name: "myarea",
    value: "Some value",
    intermediateChanges: true,
    selectOnClick: true,
    onKeyPress: function(evt) {
      if (evt.charOrCode === keys.TAB) {
       console.log('tab!');
      }
    }
  }, "myarea").startup();

  var textarea2 = new TextBox({
    name: "myarea2",
    value: "Some value",
    intermediateChanges: true,
    selectOnClick: true,
    onKeyPress: function(evt) {
      if (evt.charOrCode === keys.TAB) {
       console.log('tab!');
      }
    }
  }, "myarea2").startup();
  var textarea3 = new TextBox({
    name: "myarea3",
    value: "Some value",
    intermediateChanges: true,
    selectOnClick: true,
    onKeyPress: function(evt) {
      if (evt.charOrCode === keys.TAB) {
       console.log('tab!');
      }
    }
  }, "myarea3").startup();
});