2016-08-03 3 views
0

Ich versuche, den Benutzer zu beschränken, nur Zahlen einzugeben. Vielleicht kann ich dies mit regulären Ausdruck tun, aber ich weiß nicht die genaue Syntax. Ich möchte keine Dezimalzahlen oder Sonderzeichen.Wie Constrains-Eigenschaft für Eingabe in UI5 verwenden?

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

Wenn Sie angeben, wird die numerische Tastatur auf dem Gerät angezeigt. – user2408578

Antwort

0

Wenn Sie den Eingabetyp Number, keine (Sonder-) Zeichen beschränken dürfen in das Eingabefeld eingeben. Zahlenbezogene Zeichen (.,-) sind jedoch zulässig. Um es loszuwerden, können Sie den Datentyp Ihrer Eigenschaft Bindung an sap.ui.model.type.Integer festlegen. Sie können auch die minLength, maxLength usw. Bedingungen festlegen. Wenn Benutzer eingeben, wird ein Validierungsfehler ausgelöst und der Wert des Eingabefeldwerts wird auf Fehler gesetzt.

<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

Der sap.ui.model.type.Number nicht existiert, aber Integer und Float tun.

Ich denke, der Integer-Typ ist genau das, was Sie brauchen. Nur ganze Zahlen sind gültig und standardmäßig gibt es keine Gruppierung, Dezimalstellen oder andere Zeichen. Sie könnten die error handling capabilities von SAPUI5 verwenden, um den Benutzer zu warnen, wenn ein ungültiger Eintrag eingegeben wurde.

Wenn Sie verhindern möchten, dass ungültige Zeichen gerade eingegeben werden, können Sie das maskierte Eingabesteuerelement verwenden. Zum Beispiel:

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

Allerdings persönlich finde ich sie ein bisschen hässlich für die reguläre Nummer. Die Maskeneingabesteuerung ist eigentlich für Eingabewerte gedacht, die einem bestimmten Muster wie Kreditkartennummer oder Postleitzahlen folgen.

0

Die sehr <Input type="Number" akzeptiert nichts als Zahlen aber wenn Sie noch Ihre eigene Validierung implementieren möchten, können Sie tun, wie die unten regex folgen verwendet, um nur die Zahlen zu betrachten:

definieren regex:

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

hinzufügen liveChange an Ihre Eingabe

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); 
    } 
    }