如何在一个窗口小部件中限制TAB导航?

时间:2017-02-01 16:43:42

标签: javascript user-interface window keypress webix

我有一个Webix模态窗口,其中包含一个带有多个输入的表单:

var form = {
  view:"form",
  borderless:true,
  elements: [
    { view:"text", label:'Login', name:"login" },
    { view:"text", label:'Email', name:"email" },
    { 
      view:"button", value: "Submit", click:function(){
        console.log(this.getParentView().getValues())
    }}
  ]
};  

以下示例中有一个窗口,说明当前行为:

http://webix.com/snippet/4bd116bb

如果我使用TAB导航,焦点将从最后一个窗口内控件中移出窗口。一旦焦点进入,是否有办法在窗口内本地化TAB导航?

1 个答案:

答案 0 :(得分:0)

代码可以捕获onFocusChange事件,并在目标超出窗口时将焦点移回。

webix.attachEvent("onFocusChange", function(target){
  if (!target || target.getTopParentView() != $$("win"))
    webix.delay(function(){
      webix.UIManager.setFocus($$("win").getBody().elements.login);
    });
});

http://webix.com/snippet/7db250dd