2016-07-12 13 views
0

Ich versuche, einfache Zahl Validierung für angular2 Projekt zu tun. Ich kann den unten beschriebenen JavaScript-Code nicht replizieren.Validierung basierend auf Tastendruck in Winkel 2

Html

<input type="text" class="textfield" value="" id="extra7" name="extra7" onkeypress="return isNumber(event)" /> 

JavaScript

function isNumber(evt) { 
    evt = (evt) ? evt : window.event; 
     var charCode = (evt.which) ? evt.which : evt.keyCode; 

     if (charCode > 31 && (charCode != 46 && (charCode < 48 || charCode > 57))) { 
      return false; 
     } else { 
      return true; 
     } 
} 

Jetzt für angularJS2 als ich versuchte, return isNumber(event) zu tun, ist es nicht in der Lage HTML-Datei zu kompilieren. Und feuern Rx.js Fehler. Wenn ich return entferne, kompiliert es aber nicht, wie es sollte.

Fehle ich etwas in Bezug auf AngularJS2 Welt.

Bitte lassen Sie mich wissen, wenn weitere Details erforderlich sind.

aktualisieren

So kann ich es in angular2 tue. Hier kann ich einen Tastendruck erhalten, wenn ich das Rückgabeschlüsselwort entferne, aber nicht verwenden kann, was ich von der isNumber-Methode zurückgebe.

PS: Ich mache all diese spezielle Arbeit, weil Firefox Eingabe Typ Nummer nach der Nummer zum Zeitpunkt des Formulars überprüfen. Und AngularJS2 umgeht Formpost (vollständiger HTML-Post), um Ajax Post afaik zu geben.

Antwort

1

Wenn eine Funktion auf ein Element Bindung sollten Sie die football operator:

<input ... (keypress)="return isNumber()"/> 

Wenn das nicht funktioniert, ich bin neugierig, warum Sie eine Funktion auf Tastendruck zurückkommen müssen ...

+1

'onkeypress' ist ein natives Attribut, aber wenn es in eckig gebunden wird, verliert es sein 'on'-Präfix. – rinukkusu

+0

irgendein Link oder Dokumentation dafür? Die einzigen Dinge, die ich auf eckigen sehe, sagen etwas wie "lass uns alle nativen Elemente in html verwenden" –

+0

https://github.com/angular/angular/blob/ae75e3640a2d9eb1e897a0771d92b976c5a42c75/modules/%40angular/platform-browser/src/web_workers /ui/event_dispatcher.ts – rinukkusu