在dijit / form / TextBox上听tab键

时间:2016-03-29 10:01:28

标签: javascript dojo dijit.form

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

1 个答案:

答案 0 :(得分:1)

我能够使用以下代码解决我的问题,基本上,我会听onKeyPress TAB密钥。

我还不确定这种方法是否是最好的方法。 任何想法都是受欢迎的。

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();
});