UI5 的 sap.m.Input controller 只能使用大写或大写字母
Uppercase or capital letters only in sap.m.Input controller of UI5
我在我的 SAPUI5 应用程序中使用 sap.m.Input
控制器,我希望此字段中的输入文本仅以大写字母 / 大写字母显示。实际值与数据验证一起在后端格式化。
有没有现成的属性来启用大写模式?
我查看了 API 参考中的 control properties,但找不到类似的东西。
问题扩展:
据我了解,JS 的替代解决方案是使用 CSS 属性: text-transform: uppercase;
并将此样式附加到特定的 sap.m.Input
控制器。
问题是,从性能的角度来看,哪种方法更可取——使用基于 CSS 的 (text-transform
) 还是基于 JS 的 (liveChange
)技术?
您可以使用 liveChange
事件执行此操作:
<Input liveChange = "onLiveChange"></Input>
在您的控制器中定义函数:
onLiveChange: function(oEvent) {
var input = oEvent.getSource();
input.setValue(input.getValue().toUpperCase());
}
如果要在您的输入控件中显示您的初始值,您可以定义一个格式化程序,将您的字符串格式化为大写。
据我所知,更好的解决方案是使用 CSS:
.sapMInput.myCustomCSSClass .sapMInputBaseInner {
text-transform: uppercase;
}
... 或者您可以将回调附加到输入控件的 "validationSuccess" 事件,并在回调中执行如下操作:
var oSrc = oEvent.getSource();
if(oSrc && oSrc.setValue){
oSrc.setValue(oSrc.getValue().toUpperCase());
}
下面一行代码,您只需编写即可解决您的需求。不需要控制器,只需在视图中输入它 :)。这种方法通过使用表达式解决了您的问题
<Input value = "{ value: '' constraints: { search: '^[A-Z]*$' } }" />
使用 search
约束意味着它将在输入中搜索并根据您设置的值进行检查。
'^[A-Z]*$'
表示只有大写字母,这是一个正则表达式,或者regex。
要启用自动错误处理,只需在 manifest.json 的“sap.ui5”部分下添加 1 行代码:
"handleValidation": true,
它将自动呈现错误消息以指导用户。
其他人可能会觉得有用的另一个正则表达式:'^[A-Za-z]*$'
,这意味着您只能键入字母、大写和小写字母。
这是有关内联验证的有用资源:https://sapui5.hana.ondemand.com/#/topic/07e4b920f5734fd78fdaa236f26236d8
我在我的 SAPUI5 应用程序中使用 sap.m.Input
控制器,我希望此字段中的输入文本仅以大写字母 / 大写字母显示。实际值与数据验证一起在后端格式化。
有没有现成的属性来启用大写模式?
我查看了 API 参考中的 control properties,但找不到类似的东西。
问题扩展:
据我了解,JS 的替代解决方案是使用 CSS 属性: text-transform: uppercase;
并将此样式附加到特定的 sap.m.Input
控制器。
问题是,从性能的角度来看,哪种方法更可取——使用基于 CSS 的 (text-transform
) 还是基于 JS 的 (liveChange
)技术?
您可以使用 liveChange
事件执行此操作:
<Input liveChange = "onLiveChange"></Input>
在您的控制器中定义函数:
onLiveChange: function(oEvent) {
var input = oEvent.getSource();
input.setValue(input.getValue().toUpperCase());
}
如果要在您的输入控件中显示您的初始值,您可以定义一个格式化程序,将您的字符串格式化为大写。
据我所知,更好的解决方案是使用 CSS:
.sapMInput.myCustomCSSClass .sapMInputBaseInner {
text-transform: uppercase;
}
... 或者您可以将回调附加到输入控件的 "validationSuccess" 事件,并在回调中执行如下操作:
var oSrc = oEvent.getSource();
if(oSrc && oSrc.setValue){
oSrc.setValue(oSrc.getValue().toUpperCase());
}
下面一行代码,您只需编写即可解决您的需求。不需要控制器,只需在视图中输入它 :)。这种方法通过使用表达式解决了您的问题
<Input value = "{ value: '' constraints: { search: '^[A-Z]*$' } }" />
使用 search
约束意味着它将在输入中搜索并根据您设置的值进行检查。
'^[A-Z]*$'
表示只有大写字母,这是一个正则表达式,或者regex。
要启用自动错误处理,只需在 manifest.json 的“sap.ui5”部分下添加 1 行代码:
"handleValidation": true,
它将自动呈现错误消息以指导用户。
其他人可能会觉得有用的另一个正则表达式:'^[A-Za-z]*$'
,这意味着您只能键入字母、大写和小写字母。
这是有关内联验证的有用资源:https://sapui5.hana.ondemand.com/#/topic/07e4b920f5734fd78fdaa236f26236d8