我正在使用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();
});

09-20 20:31