2016-08-03 24 views
0

私は、数字だけを入力するようにユーザーを制限しようとしています。 私はこれを正規表現を使って行うことができますが、正確な構文はわかりません。 小数点または特殊文字は必要ありません。UI5の入力にconstrainsプロパティを使用するにはどうすればよいですか?

<Input type="Number" 
value="{ 
    type : 'sap.ui.model.type.Number', 
    constraints : { 
     minLength: 1, 
     maxLength: 15, 
     validate: ... 
    } 
}" /> 
+0

を指定すると、デバイスにテンキーが表示されます。 – user2408578

答えて

0

あなたはNumberに入力タイプを制限する場合は、(特殊)文字を入力フィールドに入ることを許されていません。ただし、番号関連の文字(.,-)は許可されています。これを取り除くには、プロパティバインディングのデータ型をsap.ui.model.type.Integerに設定します。 minLength,maxLengthなどの制約を設定することもできます。ユーザーが2.1を入力すると、検証エラーがスローされ、入力フィールドの値の状態がErrorに設定されます。

<Input type="Number" 
    value="{ 
     type : 'sap.ui.model.type.Integer', 
     constraints : { 
      minLength: 1, 
      maxLength: 15 
    } 
}" /> 

Documentation of the Integer type.

Here is an other example for field validation with MessageManager

2

sap.ui.model.type.Numberは存在しませんが、IntegerFloatを行います。

整数型は必要なものだと思います。整数だけが有効で、デフォルトではグループ化、小数点またはその他の文字はありません。無効なエントリが入力された場合、SAPUI5のerror handling capabilitiesを使用してユーザに警告することができます。

無効な文字を入力しないようにするには、マスクされた入力コントロールを使用します。たとえば、

<MaskInput 
    mask = "999999" 
    placeholderSymbol = "_" 
    placeholder = "Enter a six digit number"/> 

ただし、私は個人的には普通の数字では少し醜いです。マスク入力コントロールは、実際には、クレジットカード番号や郵便番号などの特定のパターンに従う入力値を対象としています。

regex = /^[0-9]*$/; 

追加:

regexを定義します。あなたはまだ数字だけを考えるために使用される以下の正規表現に従うと、あなたが行うことができます独自の検証を実装する場合

0

非常に<Input type="Number"は、しかし、数字だけを受け付けていませんliveChange入力に

liveChange: function(oEvent){ 
     if(oEvent.getParameter("liveValue") === "" 
        || !oEvent.getParameter("liveValue").match(regex)){ 
       this.setValueState(sap.ui.core.ValueState.Error); 
    } 
    else{ 
       this.setValueState(sap.ui.core.ValueState.Success); 
    } 
    } 
関連する問題