仅sap.m中的大写或大写字母SAPUI5的输入控制器

时间:2019-01-28 11:52:58

标签: sapui5 sap.m

我在我的SAPUI5应用程序中使用了sap.m.Input控制器,我希望此字段中的输入文本将以大写字母/仅大写显示。实际值与数据验证一起在后端格式化。

是否有任何可以使用的属性来启用大写模式?
我在API参考中检查了control properties,但找不到类似的内容。

问题扩展:
据我了解,JS的替代解决方案是使用CSS属性:text-transform: uppercase;并将此样式附加到特定的sap.m.Input控制器。

问题是,从性能角度来看,哪种方法更可取-使用基于CSS的(text-transform)还是基于JS的(liveChange)技术?

4 个答案:

答案 0 :(得分:1)

您可以通过liveChange事件来做到这一点:

<Input liveChange = "onLiveChange"></Input>

在您的控制器中定义函数:

onLiveChange: function(oEvent) {

    var input = oEvent.getSource();

    input.setValue(input.getValue().toUpperCase());
}

如果要在输入控件中显示初始值,则可以定义一个格式化程序,以将String格式化为大写。

答案 1 :(得分:1)

据我所知,更好的解决方案是使用CSS:

.sapMInput.myCustomCSSClass .sapMInputBaseInner {
    text-transform: uppercase;
}

答案 2 :(得分:1)

下面是一行代码,您只需要编写即可满足您的要求。无需控制器,只需在视图中输入它即可:)。这种方法通过使用表达式解决了您的问题

<Input value = "{ value: '' constraints: { search: '^[A-Z]*$' } }" />

使用search约束意味着它将在输入中进行搜索,并根据您设置的值进行检查。

'^[A-Z]*$'仅表示大写字母,这是一个正则表达式或正则表达式。

要启用自动错误处理,只需在manifest.json的“ sap.ui5”部分下添加1行代码即可: "handleValidation": true, 它将自动呈现错误消息以指导用户。

其他可能会有用的其他正则表达式:'^[A-Za-z]*$',这意味着您只能输入字母(大写和小写)。

以下是内联验证的有用资源:https://sapui5.hana.ondemand.com/#/topic/07e4b920f5734fd78fdaa236f26236d8

答案 3 :(得分:0)

...或者您可以将回调附加到输入控件的“ validationSuccess”事件,并在回调中执行如下操作:

var oSrc = oEvent.getSource();

if(oSrc && oSrc.setValue){
  oSrc.setValue(oSrc.getValue().toUpperCase()); 
}