我有劍道數字文本框。如果我輸入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