2017-04-12 34 views

回答

0

我认为这是在剑道中的错误...

在为NumericTextBox的源代码,有一个_paste处理器出现就像它试图根据文化的数字格式消毒输入,但然后它对照未经处理的值进行验证......似乎应该使用已消毒的值。

这里的实现:

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

所以,如果你贴上“123456”,它将_parse()到123456(因为它知道“”是千位分隔符),但随后的isValid检查仍在检查不良的“123456”,因此它恢复到先前的值。

如果更改的isValid线

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

让她能够验证对消毒值,那么这一切会显示您所期望它....否则我真的不能明白为什么工作首先将其消毒。

我意识到改变kendo源代码并不是一个真正有效的解决方案,但我确实认为这是一个错误,你可能需要解决它,直到它被修复。

如果您有剑道许可证,我会联系他们的支持以验证它是否是一个错误。如果您没有执照,请告诉我,我会在有时间的情况下提交申请,因为我有执照。

+0

谢谢!我的支持许可证已过期,因此我无法创建票证 – LP13

相关问题