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中)执行
然而,我认为真正的非直觉:
更新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);
}
}
我已经完全了解并开始调查此事。我发现表中的导航是可能的,并由classsap.ui.core.delegate.ItemNavigation
(至少在v1.26中)执行
然而,我认为真正的非直觉:
更新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);
}
}