2017-04-12 7 views
0

剣道の数字のテキストボックスがあります。 123456のような数字を入力すると、ウィジェットはコンマとドル記号で自動的に数字をフォーマットします。しかし、例えば、123,456のようにカンマで数字をコピーして貼り付けると、ウィジェットはそれを入力として受け入れません。剣道の数値テキストボックスにカンマ付きのペースト番号をコピーします。

JSfiddle demo

私はそれが剣道のバグだと思う私はこれをどのように修正すればよいかdefualt行動

答えて

0

を上書き...

NumericTextBoxのソースコードでは、_pasteがありますハンドブックのように見えますが、カルチャの数値形式に対して入力をサニタイズしようとしていますが、unsanitizedの値に対して検証します。サニタイズされた値を使用するようです。ここで

は実装です:あなたは「123456」を貼り付ける場合、それは123456へ)(それを_parseますので、

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

が、その後はisValidチェック(それは「」何千もの区切りであることを知っているので)まだ悪い "123,456"と照合しているので、以前の値に戻ります。

それは消毒値に対して検証するようにあなたが

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

にはisValid行を変更した場合、すべてあなたがそれが期待通りに動作しているように見えます....そう私は本当に理由を見ることができませんそれを最初に浄化する。

私は剣道のソースコードを変更することは本当に有効な解決策ではありませんが、これは修正されるまで回避する必要があるかもしれないバグだと思います。

剣道ライセンスをお持ちの場合は、サポートに連絡してバグかどうかを確認します。ライセンスをお持ちでない場合は、私に知らせてください。

+0

ありがとうございます!私のサポートライセンスは期限切れですのでチケットを作成することはできません – LP13

関連する問題