2017-01-09 105 views
0

我想在输入字段中设置类型设置为Number时的验证并使用sapui5设置maxlength。但它不起作用。从api sap.m.Input的方法setMaxLength的如果输入类型设置为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", 
      value:{ 
       type : 'sap.ui.model.type.Integer', 
       constraints : { 
       minLength: 1, 
       maxLength: 15 
      } 
     } 

    })] 
}); 

回答

1

描述:

此参数不与输入类型sap.m.InputType.Number兼容。如果输入类型设置为Number,则maxLength值将被忽略。

所以这意味着你必须找到其他方式来做到这一点。例如,当您使用sap.m.InputType.Tel格式代替,最大长度方法的工作原理:

var oInput = new sap.m.Input("Price",{ 
     width:"150px", 
     type:"Tel", 
     minLength: 1, 
     maxLength: 15 
});   
oInput.placeAt('content'); 

Here是互动的例子。

EDITED 17:30 090117:

我以前编辑代码发布允许输入你想要的(请尽量here)只是数字:

var sNumber = ""; 
    var oInput = new sap.m.Input("Price",{ 
      width:"150px",     
      minLength: 1, 
      maxLength: 15, 
      liveChange : function(oEvent){      
          var value = oEvent.getSource().getValue(); 
          var bNotnumber = isNaN(value); 
          if(bNotnumber == false)sNumber = value; 
          else oEvent.getSource().setValue(sNumber);      
      }, 

    });   
    oInput.placeAt('content'); 
+0

谢谢Jaro ...它工作。 –

+0

不客气。 – Jaro

0

正如哈罗指出,阿比说:如果输入类型设置为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 
       } 
      } 
     }); 
+0

感谢#Rahul作为答案,但我希望输入类型为数字,然后限制输入字段的最大长度。 –

+0

@PriyankaMaurya为数字类型输入字段更新了答案。 –

相关问题