如何在html文本中允许数字,退格,删除,左右箭头键?

时间:2013-12-19 13:12:06

标签: javascript html html5

我正在使用以下javascript代码,我认为应该只允许文本框中的数字,退格,删除,左箭头和右箭头键,但它也允许使用字母。我不知道为什么?

function validateQty(event) {
    var key = window.event ? event.keyCode : event.which;

if (event.keyCode == 8 || event.keyCode == 46
 || event.keyCode == 37 || event.keyCode == 39) {
    return true;
}
else if ( key < 48 || key > 57 ) {
    return false;
}
else return true;
};

将此功能称为

<input type="text" onkeypress='validateQty(event)'>

5 个答案:

答案 0 :(得分:14)

毫无疑问,您的代码是正确的,但您在文本框中错过了“return”关键字。

<input type="text" onkeypress='return validateQty(event);'>

您可以看到代码here

答案 1 :(得分:1)

&#13;
&#13;
      function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57))
            return false;
         return true;
      }
&#13;
<HTML>
   <HEAD>
   </HEAD>
   <BODY>
      <input id="txtChar" onkeypress="return isNumberKey(event)" type="text" name="txtChar" maxlength="10">
   </BODY>
</HTML>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

<input type="text"  class="form-control" id="dompetku_msisdn" name="dompetku_msisdn" placeholder="Phone Number"  aria-describedby="helpBlock" onkeydown='return (event.which >= 48 && event.which <= 57) || event.which == 8 || event.which == 46 || event.which == 37 || event.which == 39' required /> </input>

答案 3 :(得分:0)

const validateQty = (event) => {
    var key = window.event ? event.keyCode : event.which;
    console.log(event);
    if (event.keyCode === 8 || event.keyCode === 46
        || event.keyCode === 37 || event.keyCode === 39) {
        return true;
    } else if (key < 48 || key > 57) {
        return false;
    } else { return true; }
};


<input type="text" onkeydown='return validateQty(event);'>

答案 4 :(得分:0)

我稍微修改了他的代码,所以您只需在输入中添加一个类

$(".numberonly").keydown(function(e){
    // Number Only
    if (e.keyCode == 8 || e.keyCode == 46
       || e.keyCode == 37 || e.keyCode == 39) {
          return true;
      }
      else if ( e.keyCode < 48 || e.keyCode > 57 ) {
        e.preventDefault();
      }
  });

将类添加到输入

<input type="text" class="numberonly" />