Jquery 数字字段的最大值验证

Jquery Max Value Validation for Number Field

我正在从事响应式 Html 设计。有一些数字字段,他们有一些要求。

  1. 控制只取数
  2. 小数点后只需要两位数
  3. 最大值不大于9999999999
  4. 最大长度为 9 以防浮点值 (999999.99)
  5. 所有验证都在按键或向上键时进行

我实现了这段代码,它适用于台式机和其他移动设备,但不适用于任何三星标签。如果我使用 input type="number",则 maxlengthmax 值在 Samsung 选项卡中不起作用。请帮助我。

代码

$("#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));
        }    

    });

JSFiddle URL

这里是一个使用 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)));
        }
      }
    });

Updated Fiddle