Я думаю, что это ошибка в Кендо...
В исходном коде для 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);
}
});
},
Таким образом, если вы вставите «123 456», он _parse() до 123456 (потому что он знает, что «,» является разделителем тысяч), но затем проверка isValid все еще проверяет «123 456», что плохо, и поэтому возвращается к предыдущему значению.
Если вы измените строку isValid на
var isValid = that._numericRegex(numberFormat).test(result);
так что он проверяется на соответствие санированному значению, тогда все, кажется, работает так, как вы ожидаете... в противном случае я действительно не понимаю, зачем его санировать в первую очередь.
Я понимаю, что изменение исходного кода кендо на самом деле не является правильным решением, но я верю, что это ошибка, которую вам, возможно, придется обходить, пока она не будет исправлена.
Если у вас есть лицензия на кендо, я бы связался с их службой поддержки, чтобы проверить, является ли это ошибкой или нет. Если у вас нет лицензии, дайте мне знать, и я отправлю запрос, когда у меня будет время, так как у меня есть лицензия.
person
The Dread Pirate Stephen
schedule
12.04.2017