数字字段的Jquery最大值验证

时间:2016-05-31 22:55:54

标签: javascript jquery responsive-design tablet

我正在开发响应式Html设计。有一些数字字段,它们有一些要求。

  1. 控制仅限数字
  2. 小数点后只需两位数
  3. 最大值不大于9999999999
  4. 如果浮动值(999999.99
  5. ,则最大长度为9
  6. 按键或键盘上的所有验证工作
  7. 我实现了这个代码,它适用于桌面和其他移动设备,但不能在任何三星标签上工作。如果我使用input type="number",则maxlengthmax值无法在Samsung标签中使用。 Plz帮助我。

    CODE

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

1 个答案:

答案 0 :(得分: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)));
        }
      }
    });

Updated Fiddle