我想在Numerictextbox
中配置为小数时限制用户十进制输入。我正在使用knockoutjs来观察来自numerictextbox的数据。当用户输入更多小数时,它会在淘汰赛中自动更新,但在控制中它只显示配置的小数。
小数是动态设置为kendo数字文本框,所以我需要限制用户输入小数时更多的定义小数。当用户输入多个小数点的淘汰更新值
一个例子是如果我将小数设置为2.当用户输入56.2456
时,敲除会在模型中更新此值,并且在光标移动到下一个控件后,numerictextbox会显示56.25
。我想将此值更新到模型中,并且需要限制用户输入超过2位小数。
如何应用此限制?
答案 0 :(得分:0)
您可以按以下代码执行文本框的按键事件。
$("#txtXZY").kendoNumericTextBox({
format: "#.00 \\%",
min: 0,
decimals: 2,
max: 100,
step: 1,
spinners: IsSpinner
});
$("#txtXZY").bind("keypress", function (e) {
if (IsTextSelected(this) == false && e.keyCode !== kendo.keys.ENTER) {
var character = String.fromCharCode(e.keyCode)
var newValue = this.value + character;
if (isNaN(newValue) || parseFloat(newValue) * 100 % 1 > 0) {
e.preventDefault();
return false;
}
if (parseFloat(newValue) > 100) {
e.preventDefault();
return false;
}
}
});
function IsTextSelected(input) {
if (typeof input.selectionStart == "number") {
return input.selectionStart == 0 && input.selectionEnd == input.value.length;
} else if (typeof document.selection != "undefined") {
input.focus();
return document.selection.createRange().text == input.value;
}
}