Sapui5 sap.m.Input仅允许正整数值
我需要拒绝sap.m.Input控件除整数值以外的任何输入。因此in input只能输入0-9,没有任何符号(+-)或任何十进制分隔符。我找不到好的解决办法。视图是以XML格式声明的,最好的方法是在可能的情况下使用附加参数更改此XML 可能的解决办法:Sapui5 sap.m.Input仅允许正整数值,sapui5,Sapui5,我需要拒绝sap.m.Input控件除整数值以外的任何输入。因此in input只能输入0-9,没有任何符号(+-)或任何十进制分隔符。我找不到好的解决办法。视图是以XML格式声明的,最好的方法是在可能的情况下使用附加参数更改此XML 可能的解决办法: 第一个单写自定义格式化程序 第二种方法-尝试找到一些类型的标准解决方案。我找到了内部数据类型和它们的设置,但它们似乎工作得不好 正则表达式是您在这里的朋友 这是一个很好的例子,我重复了一些只验证文本的人,并修改了正则表达式,使其只接受数字 您可
- 第一个单写自定义格式化程序
- 第二种方法-尝试找到一些类型的标准解决方案。我找到了内部数据类型和它们的设置,但它们似乎工作得不好
- 正则表达式是您在这里的朋友
这是一个很好的例子,我重复了一些只验证文本的人,并修改了正则表达式,使其只接受数字
您可以将验证连接到更改事件中,以便在输入文本时触发并将状态设置为错误
让我们知道这是怎么回事
干杯
Nigel在这种情况下,自定义格式化程序不会帮助您,因为它只使用单向(模型->视图) 但是数据类型在这里是你的朋友。我建议
sap.ui.model.type.Integer
使用最小约束0
但是,这有两个先决条件:
或者,您可以使用
ValidationException
。错误将被忽略,但模型不会更新。要为用户获得一些反馈,您可以在以下位置注册控件或整个视图:sap.ui.getCore().getMessageManager().registerObject(this.getView(),true);
您还可以在组件中或在实例化组件时启用
.谢谢您的回答。我正在寻找通过标准特性实现这一点的方法。我曾考虑过使用regex和change事件,但我认为这不是一个非常干净的方法。但是如果没有其他方法,那么,我会用这种方法。