2017-04-12 5 views
0

Ich habe Kendo numerischen Textfeld. Wenn ich eine Zahl wie 123456 eintippe, formatiert das Widget die Zahl automatisch wie erwartet mit Komma und Dollarzeichen. Wenn ich jedoch eine Zahl mit Komma kopiere und einfüge, zum Beispiel 123,456, akzeptiert das Widget das nicht als Eingabe.Kopieren Einfügen Zahlen mit Komma in Kendo numerischen Textfeld

JSfiddle demo

Wie behebe ich dieses oder überschreiben die defualt Verhalten

Antwort

0

Ich denke, es ist ein Fehler in Kendo ist ...

Im Quellcode für die NumericTextBox, gibt es eine _paste Handler, der erscheint wie es versucht, die Eingabe gegen das numerische Format der Kultur zu bereinigen, aber dann validiert es gegen den unsanitisierten Wert ... scheint es sollte den bereinigten Wert verwenden.

Hier ist die Umsetzung:

_paste: function (e) { 
      var that = this; 
      var element = e.target; 
      var value = element.value; 
      var numberFormat = that._format(that.options.format); 
      setTimeout(function() { 
       var result = that._parse(element.value); 
       var isValid = that._numericRegex(numberFormat).test(element.value); 
       if (result === NULL || that._adjust(result) !== result || !isValid) { 
        that._update(value); 
       } 
      }); 
     }, 

Also, wenn Sie „123456“ einfügen, wird es _parse(), um 123.456 (weil es weiß, dass „“ ist die Tausendertrennzeichen), aber dann die isValid Prüfung überprüft immer noch gegen die "123.456", die schlecht ist und so zum vorherigen Wert zurückkehrt.

Wenn Sie die isValid Linie

var isValid = that._numericRegex(numberFormat).test(result); 

so ändern, dass sie gegen den hygienisiert Wert bestätigt, dann alles erscheint wie Sie arbeiten erwarten, dass es .... sonst kann ich nicht wirklich sehen, warum die Desinfektion es in erster Linie.

Ich erkenne, dass die Änderung des Kendo-Quellcodes es nicht wirklich eine gültige Lösung, aber ich glaube, das ist ein Fehler, den Sie möglicherweise umgehen müssen, bis es behoben ist.

Wenn Sie eine Kendolizenz haben, würde ich ihren Support kontaktieren, um zu überprüfen, ob es sich um einen Bug handelt oder nicht. Wenn Sie keine Lizenz haben, lassen Sie es mich wissen und ich werde eine Anfrage stellen, wenn ich Zeit habe, da ich eine Lizenz habe.

+0

Danke! Meine Support-Lizenz ist abgelaufen, daher kann ich kein Ticket erstellen – LP13

Verwandte Themen