2014-09-18 2 views
0

Я пытаюсь ограничить поле ввода html только для приема чисел Код JS отлично работает с английской клавиатурой на устройстве Android, но когда я сменю клавиатуру к Japaneses он начинает принимать символы Японии.Ограничение ввода только на номера (-100.00 до 100.00) в поле ввода HTML

(Update: Японская проблема ввода решена только - и десятичная точка не вводится)

Вот HTML

<input type='text' style='height: 100%;' name='lmt_c13' id='lmt_c13' isNumeric='true'onblur='updateJudgment(this);' onkeyup='removeSpaces(this);' onkeypress='returnisNumberKey(event,this);' class='txtCtrl' >0</input>

и вот JS код

function isNumberKey(evt, control) { 


    if ($(control).attr("isNumeric") == "true") { 
     var charCode = (evt.which) ? evt.which : event.keyCode 
     if (charCode > 31 && (charCode < 48 || charCode > 57) || charCode == 13) 
      return false; 

     return true; 
    } 
}; 

вход Я хочу, чтобы в этом поле ввода в чем-то вроде -12.24 и 23.78

ответ

0

Для десятичной точки позволяют, можно добавить ниже условия :: || charCode == 46

if (charCode > 31 && (charCode < 48 || charCode > 57) || charCode == 13 || charCode == 46) 

Или, если вы хотите проверить десятичную проверку, то

function CheckDecimal(inputtxt) 
{ 
    var decimal= /^[-+]?[0-9]+\.[0-9]+$/; 
    if(inputtxt.value.match(decimal)) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

Надеется, что это помогает

0

я думаю, что я буду делать это: (с использованием регулярных выражений)

function isNumberKey(control) { 
     if ($(control).attr("isNumeric") == "true") { 
      var regex = /^[0-9.-]$/; 
      var _event = event || window.event; 
      var key = _event.keyCode || _event.which; 
      key = String.fromCharCode(key); 
      if(!regex.test(key)) { 
       //alert(key); 
       _event.returnValue = false; 
       if (_event.preventDefault) 
        _event.preventDefault(); 
      } 
     } 
    }; 

    function isDecimal(control) { 
     if ($(control).attr("isNumeric") == "true") { 
      var regex = /^[-]?[0-9]+[.]?[0-9]*$/; 
      str = $(control)[0].value; 
      var _event = event || window.event; 
      if(!regex.test(str)) { 
       var m = str.match(/^[-]?[0-9]+[.]?[0-9]*/g); 
       $(control)[0].value = m[0]; 
       _event.returnValue = false; 
       if (_event.preventDefault) 
        _event.preventDefault(); 
      } 
     } 
    }; 

и мой html:

<input type='text' style='height: 20px;' name='lmt_c13' id='lmt_c13' isNumeric='true' onblur='updateJudgment(this);' onkeyup='isDecimal(this);' onkeypress='isNumberKey(this);' class='txtCtrl' value='0' /> 

, пожалуйста, попробуйте и скажите, если это сработает.

Смежные вопросы