我正在从事响应式 Html 设计。有一些数字字段,它们有一些要求。
- 控制只取数字
- 小数点后只需要两位数
- 最大值不大于
9999999999
- 最大长度为 9,以防浮点值 (
999999.99
) - 所有验证工作均在按键或按键时进行
我实现了这段代码,它在桌面和其他移动设备上运行良好,但在任何三星选项卡上都不起作用。如果我使用 input type="number"
则 maxlength
或 max
值在三星选项卡中不起作用。请帮助我。
代码
$("#txtnumber").keydown(function (event) {
if (event.shiftKey == true) {
event.preventDefault();
}
if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 46 || event.keyCode == 190 || event.keyCode == 110) {
} else {
event.preventDefault();
}
if (($(this).val().indexOf('.') !== -1 && event.keyCode == 190) || $(this).val().indexOf('.') !== -1 && event.keyCode == 110)//Allow only one time decimal to input
event.preventDefault();
});
$("#txtnumber").keyup(function () {
var number = ($(this).val().split('.'));
if (number[1].length > 2) {
var FNumber = parseFloat($("#txtnumber").val());
$("#txtnumber").val(FNumber.toFixed(2));
}
});
最佳答案
这是一个使用 jquery 的示例,
$("#txtnumber").on('keyup keydown', function () {
if (isNaN(($(this).val()))) {
$(this).val($(this).val().substring(0, ($(this).val().length - 1)));
}
if ($(this).val().length > 10 && $(this).val().indexOf('.') == -1) {
$(this).val($(this).val().substring(0, 10));
}
if ($(this).val().indexOf('.') !== -1 && $(this).val().length > 9) {
$(this).val($(this).val().substring(0, 9));
}
if (($(this).val().indexOf('.') !== -1)) {
var decimal = $(this).val().split('.');
if (decimal[1].length > 2) {
$(this).val($(this).val().substring(0, ($(this).val().length - 1)));
}
}
});
关于javascript - Jquery 数字字段的最大值验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37556960/