我需要拒绝sap.m.Input控制除整数值之外的任何输入。因此在输入中可能只输入0-9,没有任何符号符号(+ - )或任何小数分隔符。我找不到好的解决方案。以XML格式声明的视图,如果可能的话,更好的方法是使用其他参数更改此XML。
可能的解决方案:
答案 0 :(得分:2)
正则表达式是你的朋友。
这是一个非常simple jsbin我从仅验证文本的人那里重新使用,并修改了正则表达式只接受数字。
您可以将验证连接到更改事件,以便在输入文本时触发并将状态设置为错误。
让我们知道这是如何运作的。
干杯,
佰
答案 1 :(得分:2)
在这种情况下,自定义格式化程序无法帮助您,因为它仅用于单向(模型 - >视图)。
但数据类型是你的朋友。我建议sap.ui.model.type.Integer
的最小约束为0。
<Input value="{path: '/value', type: 'sap.ui.model.type.Integer', constraints:{minimum:0}}" />
然而,这确实有两个先决条件:
<script src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"
id="sap-ui-bootstrap"
data-sap-ui-theme="sap_bluecrystal"
data-sap-ui-libs="sap.m"
data-sap-ui-compatVersion="edge">
或者,您可以使用data-sap-ui-bindingSyntax="complex"。
ValidationException
。将默默忽略该错误,但不会更新模型。要获得用户的一些反馈,您可以在MessageManager:sap.ui.getCore().getMessageManager().registerObject(this.getView(), true);
您还可以在Component中启用handleValidation或实例化组件。