最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to allow numbers, backspace, delete, left and right arrow keys in the html text? - Stack Overflow

programmeradmin6浏览0评论

I am using following javascript code which I think should only allow numbers, backspace, delet, left arrow and right arrow keys in textbox, but it is also allowing alphabets. I don't know why?

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;
};

Calling this function as

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

I am using following javascript code which I think should only allow numbers, backspace, delet, left arrow and right arrow keys in textbox, but it is also allowing alphabets. I don't know why?

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;
};

Calling this function as

<input type="text" onkeypress='validateQty(event)'>
Share Improve this question asked Dec 19, 2013 at 13:12 user1556433user1556433 2
  • What do you mean by ALLOW backspace, delete, left and right – Mr. Alien Commented Dec 19, 2013 at 13:13
  • @Mr.Alien - I mean these keys. Edited my question. – user1556433 Commented Dec 19, 2013 at 13:14
Add a comment  | 

5 Answers 5

Reset to default 17

No doubt your code is correct but you missed "return" keyword in textbox.

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

You can see the code here

<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>

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

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);'>

I modified his code a bit, so you can just add a class to an input

$(".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();
      }
  });

add class to an input

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

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论