SAPUI5中的焦点处理

SAPUI5中的焦点处理,sapui5,Sapui5,我们需要在表控件中使用“tab”键,以便只跨输入字段进行导航 1。每个表行至少有6到8个字段-其中2个是输入字段,其余可以是文本、选择等。 2.通过单击tab,我可以在一行的输入字段之间导航。单击一行的最后一个输入字段,我应该移动到下一行的第一个输入字段 我有下面的代码,但我可以看到输入控件的focus方法将UI聚焦到要聚焦的输入的后续输入字段 Jsbin- 我尝试设置.sapMFocus和document.getElementbyId()等样式,但它们都不起作用。 你能在这方面提出一些建议吗。


我们需要在表控件中使用“tab”键,以便只跨输入字段进行导航
1。每个表行至少有6到8个字段-其中2个是输入字段,其余可以是文本、选择等。
2.通过单击tab,我可以在一行的输入字段之间导航。单击一行的最后一个输入字段,我应该移动到下一行的第一个输入字段
我有下面的代码,但我可以看到输入控件的focus方法将UI聚焦到要聚焦的输入的后续输入字段
Jsbin-
我尝试设置.sapMFocus和document.getElementbyId()等样式,但它们都不起作用。
你能在这方面提出一些建议吗。 感谢和问候, Veera

我已经知道了,并开始调查。我发现表中的导航是可能的,并由class
sap.ui.core.delegate.ItemNavigation
(至少在v1.26中)执行

然而,我认为真正的非直觉:

  • 在Mac(Chrome或Safari)上,您必须在按住ALT键的同时按TAB键以循环浏览表格的输入字段。
  • 我还不知道怎么在Windows上做
  • 我查看了你的JSBin示例,不知怎的,字段以一种奇怪的顺序聚焦。我已经准备好了自己的示例——在这个示例中,您可以使用Alt+Tab逐行遍历输入字段


    更新1 我找到了Klaus Kronawetter的博客,它为
    sap.ui.table.table
    添加了额外的键盘处理。我将他的代码改编成一个
    sap.m.Table
    ,你可以在下面的网站上找到

    更新2 经过进一步调查,我认为上面更新1的解决方案太麻烦了

    相反,我修改了上面提到的类
    sap.ui.core.delegate.ItemNavigation
    ,该类由
    sap.m.ListBase
    内部使用。本质上,您可以使用上下箭头键循环输入字段

    我已经准备了一个例子。有关守则如下:

    var fnPatchedItemNavigationsetItemDomRefs = sap.ui.core.delegate.ItemNavigation.prototype.setItemDomRefs;
    sap.ui.core.delegate.ItemNavigation.prototype.setItemDomRefs = function setItemDomRefsPatched(aItemDomRefs) {
        // 'this' is now the instance of sap.ui.core.delegate.ItemNavigation
        jQuery.sap.log.debug("Patched version of sap.ui.core.delegate.ItemNavigation.setItemDomRefs");
        var aInputFields = $(aItemDomRefs).find("input:enabled").get();
        if (aInputFields[0]) {
            // There is at least one enabled input field in this table
            fnPatchedItemNavigationsetItemDomRefs.call(this, aInputFields);
        } else {
            fnPatchedItemNavigationsetItemDomRefs.call(this, aItemDomRefs);
        }
    }
    
    我已经完全了解并开始调查此事。我发现表中的导航是可能的,并由class
    sap.ui.core.delegate.ItemNavigation
    (至少在v1.26中)执行

    然而,我认为真正的非直觉:

  • 在Mac(Chrome或Safari)上,您必须在按住ALT键的同时按TAB键以循环浏览表格的输入字段。
  • 我还不知道怎么在Windows上做
  • 我查看了你的JSBin示例,不知怎的,字段以一种奇怪的顺序聚焦。我已经准备好了自己的示例——在这个示例中,您可以使用Alt+Tab逐行遍历输入字段


    更新1 我找到了Klaus Kronawetter的博客,它为
    sap.ui.table.table
    添加了额外的键盘处理。我将他的代码改编成一个
    sap.m.Table
    ,你可以在下面的网站上找到

    更新2 经过进一步调查,我认为上面更新1的解决方案太麻烦了

    相反,我修改了上面提到的类
    sap.ui.core.delegate.ItemNavigation
    ,该类由
    sap.m.ListBase
    内部使用。本质上,您可以使用上下箭头键循环输入字段

    我已经准备了一个例子。有关守则如下:

    var fnPatchedItemNavigationsetItemDomRefs = sap.ui.core.delegate.ItemNavigation.prototype.setItemDomRefs;
    sap.ui.core.delegate.ItemNavigation.prototype.setItemDomRefs = function setItemDomRefsPatched(aItemDomRefs) {
        // 'this' is now the instance of sap.ui.core.delegate.ItemNavigation
        jQuery.sap.log.debug("Patched version of sap.ui.core.delegate.ItemNavigation.setItemDomRefs");
        var aInputFields = $(aItemDomRefs).find("input:enabled").get();
        if (aInputFields[0]) {
            // There is at least one enabled input field in this table
            fnPatchedItemNavigationsetItemDomRefs.call(this, aInputFields);
        } else {
            fnPatchedItemNavigationsetItemDomRefs.call(this, aItemDomRefs);
        }
    }