2017-08-19 1 views
2

Ich verwende ionische neueste Version 3.9.2. und ich stehe vor einem Problem. Ich habe ein Eingabefeld. Eingabetypnummer, wenn Benutzereingaben in Textfeld erlauben sie nur eine Ziffer nach dem Dezimaltrennzeichen. und in Eingabefeld maximal nur eine Dezimalzahl nicht mehr als eins erlauben.Dezimalstelle Eingabe Typ nur Zahl Ionic 3 letzte Version (3.9.2) Ich benutze

Examples: 
1) 1407.1 
2) 6449496.8 
3) 1.1 

Gefällt Ihnen dieses nur Benutzer kann eine Ziffer nach dezimal

Meine HTML-Code

<ion-item> 
    <ion-label fixed>TECHLOG:</ion-label> 
    <ion-input type="number" [ngModel]="mymodel" (ngModelChange)="onChangeTech($event)"></ion-input> 
</ion-item> 

Meine ts-Datei Code

onChangeTech(event) { 
    alert(event) 
    } 

In der Warnung, ich erhielt die Nummer was auch immer ich eintippe, aber ich weiß nicht, wie ich nach einer Dezimalstelle in meinem Eingabefeld mit Nachdruck anhalten kann.

+0

zeigen Ihnen die 'code'? – Sampath

+0

Bitte überprüfen Sie meinen Code, und wir können dies nur in HTML-Seite beheben?. Danke –

+0

Können Sie auch die 'Mymodel' Details anzeigen? 'code' auf' .ts' Datei? – Sampath

Antwort

0

Sie können text-mask Modul verwenden. Bitte versuchen Sie es und lassen Sie es mich wissen.

Demo Page from the Doc

npm i angular2-text-Maske --save

Dann importieren Sie es in Ihr @NgModule:

import { NgModule } from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { TextMaskModule } from 'angular2-text-mask'; 

@NgModule({ 
    imports: [ 
    FormsModule, 
    TextMaskModule 
    ], 
    declarations: [] 
}) 
export class MyModule {} 
+0

Okay, ich werde es gerade jetzt versuchen und ich werde es euch wissen lassen. –

+0

Ich kann Ihr Beispiel nicht verstehen: diese Zeile müssen wir in die Vorlage einfügen: ' ' –

+0

Ersetzen Sie einfach' Eingang' durch 'Ionen-Eingang'. – Sampath

0

Auf diese Weise ist nicht korrekt 100%. Es wird die Benutzereingabe runden (zB 1.57 -> 1.6). Und es kann nicht mit der falschen Eingabe umgehen (zB 1.2.3454). Aber es ist ein schneller und einfacher Weg.

let input = document.getElementById('numberInput'); 
 
input.addEventListener('keyup', (event) => { 
 
    let value = parseFloat(input.value); 
 
    if (value) { 
 
    input.value = parseFloat(value.toFixed(1)); 
 
    } 
 
})
<input type="number" id="numberInput" step="0.1" />

+0

Es arbeitet an ionischen 3? und danke, dass du dein Beispiel mit mir geteilt hast. Ich werde dich wissen lassen, dass es funktioniert oder nicht. –

+0

Es ist nur Javascript. Und Ionic ist ein JavaScript-Framework. – Duannx

+0

Hallo, Duannx, ich habe das versucht, aber diese Logik wurde mir nicht gewaltsam aufgehalten. Wenn Benutzer eine Dezimalzahl eingeben, kann der Benutzer nach einer Dezimalzahl keine Zahl eingeben. –

Verwandte Themen