2017-04-12 2 views

Répondre

0

Je pense qu'il est un bogue dans Kendo ...

Dans le code source du NumericTextBox, il y a un _paste gestionnaire que apparaît comme il essaie d'assainir l'entrée par rapport au format numérique de la culture, mais il valide ensuite contre la valeur non anonymes ... semble être qu'il devrait utiliser la valeur aseptisée.

est ici la mise en œuvre:

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

Donc, si vous collez « 123456 », il _parse() à 123456 (parce qu'il sait que « » est séparateur des milliers), mais alors le contrôle isValid est encore en train de vérifier contre le "123,456" qui est mauvais et donc il revient à la valeur précédente.

Si vous modifiez la ligne isValid à

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

afin qu'il valide contre la valeur aseptisé, alors tout semble fonctionner comme prévu à .... je ne peux pas vraiment autrement pourquoi le désinfecter en premier lieu.

Je me rends compte que changer le code source de kendo n'est pas vraiment une solution valable, mais je crois que c'est un bug que vous pourriez avoir à contourner jusqu'à ce qu'il soit corrigé.

Si vous avez une licence de kendo, je contacterais leur support pour vérifier s'il s'agit d'un bug ou non. Si vous n'avez pas de licence, faites-le moi savoir et je ferai une demande quand j'aurai le temps car j'ai une licence.

+0

Merci! Ma licence de support a expiré, donc je ne peux pas créer de ticket – LP13