我有剑道数字文本框。如果我输入123456这样的数字,小部件将按照预期自动使用逗号和美元符号格式化数字。但是,如果我复制并粘贴逗号的数字,例如123,456
,小部件不接受作为输入。使用逗号在Kendo数字文本框中复制粘贴数字
我如何解决这个问题还是覆盖defualt行为
我有剑道数字文本框。如果我输入123456这样的数字,小部件将按照预期自动使用逗号和美元符号格式化数字。但是,如果我复制并粘贴逗号的数字,例如123,456
,小部件不接受作为输入。使用逗号在Kendo数字文本框中复制粘贴数字
我如何解决这个问题还是覆盖defualt行为
我认为这是在剑道中的错误...
在为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源代码并不是一个真正有效的解决方案,但我确实认为这是一个错误,你可能需要解决它,直到它被修复。
如果您有剑道许可证,我会联系他们的支持以验证它是否是一个错误。如果您没有执照,请告诉我,我会在有时间的情况下提交申请,因为我有执照。
谢谢!我的支持许可证已过期,因此我无法创建票证 – LP13