2016-03-29 10 views
0

私はdojo 1.10.4を使用しています。私はすべてTextBoxのタブキーを聞く必要があります。dijit/form/TextBoxのタブキーを聞く

この特定のイベントを検出することはできますか?

現時点で私は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(); 
}); 
+0

'onKey ....'イベントは動作しませんか? 'onKeyPress:function(e){ e.preventDefault(); } 'うまく働いた.... – Rayon

+0

https://jsfiddle.net/rayon_1990/92uc0tmn/14/ – Rayon

+0

@RayonDabreあなたのコメントをありがとう、私はあなたのポイントを理解するが、私は具体的には、ユーザーがテキストボックス。私はすぐに解決策を見つけました。フィードバックをお願いします。私はこれが適切なアプローチか、TextBoxクラスまたはdijit.form._TextBoxMixinを使用してより良い解決策があるかどうかを知ることは面白いです。あなたの時間を事前に感謝します。 – GibboK

答えて

1

私は基本的に、私はTABキーのonKeyPressに耳を傾け、次のコードを使用して、私の問題を解決することができました。

まだこのアプローチが最適かどうかはわかりません。 ご了承ください。

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