Javascript 如果输入类型设置为数字,如何使用sapui5设置maxlength
我想在type设置为Number时在输入字段中设置验证,并使用sapui5设置maxlength。但它不起作用Javascript 如果输入类型设置为数字,如何使用sapui5设置maxlength,javascript,sapui5,Javascript,Sapui5,我想在type设置为Number时在输入字段中设置验证,并使用sapui5设置maxlength。但它不起作用 var Price = new sap.m.HBox({ items:[new sap.m.Label({text:"Per Unit Price",required:true,design:"Bold",width:"110px"}), new sap.m.Input("Price",{ width:"150px",type:"Number", v
var Price = new sap.m.HBox({
items:[new sap.m.Label({text:"Per Unit Price",required:true,design:"Bold",width:"110px"}),
new sap.m.Input("Price",{ width:"150px",type:"Number",
value:{
type : 'sap.ui.model.type.Integer',
constraints : {
minLength: 1,
maxLength: 15
}
}
})]
});
sap.m.Input的方法setMaxLength的说明来自: 此参数与输入类型sap.m.InputType.Number不兼容。如果输入类型设置为数字,则忽略maxLength值 所以这意味着你必须找到其他的方法来做这件事。例如,当您使用sap.m.InputType.Tel格式时,maxLength方法起作用:
var oInput = new sap.m.Input("Price",{
width:"150px",
type:"Tel",
minLength: 1,
maxLength: 15
});
oInput.placeAt('content');
这是一个互动的例子
编辑时间:17:30 090117:
我编辑了之前发布的代码,只允许键入您想要的数字(请尝试):
正如Jaro所指出的,API说:如果输入类型设置为Number,则忽略maxLength值。因此,删除输入字段的类型并保留其默认字符串,并设置最小和最大长度:
var oInput = new sap.m.Input({
value:{
type : 'sap.ui.model.type.String',
path:"/value",
constraints : {
maxLength:2,
minLength:1
}
}
});
上述代码不允许我输入超过99(2位数字)
编辑:如果需要数字类型输入字段。
下面的代码不允许我成功输入大于100的值
var oInput = new sap.m.Input({
type:'Number',
value:{
type : 'sap.ui.model.type.Integer',
path:"/value",
constraints : {
minimun:0,
maximum:100
}
}
});
在输入的liveChange事件(liveChange=“\u typeNumber”)中对XML尝试此操作 在控制器上:
_typeNumber: function(oEvent) {
var value = oEvent.getSource().getValue();
var bNotnumber = isNaN(value);
if (bNotnumber === true) {
oEvent.getSource().setValue(value.substring(0, value.length - 1));
}
}
下面输入类型为“Number”的sap.m.Input代码不再工作。我在1.71.30或更高版本上测试了它。可以输入无限多的数字
_typeNumber: function(oEvent) {
var value = oEvent.getSource().getValue();
var bNotnumber = isNaN(value);
if (bNotnumber === true) {
oEvent.getSource().setValue(value.substring(0, value.length - 1));
}
}