2016-05-31 13 views
1

我正在致力于响应式Html设计。有一些号码字段,他们有一些要求。数字字段的Jquery最大值验证

  1. 控制只需要数
  2. 小数后,它采取只有两个数字
  3. 最大值不大于9999999999
  4. 最大长度是在情况下的浮点值9它将(999999.99
  5. 所有的校验在按键或键上工作

我实现了这个代码,它适用于桌面和其他m obile设备但不能在任何Samsung选项卡上工作。如果我使用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

回答

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

+0

谢谢你,这是工作正常,我 –