65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Javascript 在 keyPress 事件上验证数值

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL
viewsIcon

16578

比起使用验证控件,使用 javascript 函数来验证数值更好。我们可以限制文本框只允许

比起使用验证控件,使用 javascript 函数来验证数值更好。


我们可以使用 javascript 函数来限制文本框只允许输入数值。


这些函数将通过使用键盘上每个按键的键码来阻止用户输入非数值,从而防止用户在相应字段中输入非法值。

function blockNonNumbers(obj, e, allowDecimal, allowNegative)
{
 var key;
 var isCtrl = false;
 var keychar;
 var reg;
  
 if(window.event) {
  key = e.keyCode;
  isCtrl = window.event.ctrlKey
 }
 else if(e.which) {
  key = e.which;
  isCtrl = e.ctrlKey;
 }
 
 if (isNaN(key)) return true;
 
 keychar = String.fromCharCode(key);
 
 // 检查是否为退格键或删除键,或者是否按下了 Ctrl 键
 if (key == 8 || isCtrl)
 {
  return true;
 }

 reg = /\d/;
 var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
 var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
 
 return isFirstN || isFirstD || reg.test(keychar);
}

© . All rights reserved.