javascript - 文本框仅允许小数、删除和退格

标签 javascript jquery html

我有一个适用于十进制数的代码,只允许小数点后两位数字。我的问题是如何将代码修改为:

  1. 允许退格和删除并且
  2. 如何使代码动态化,以便不使用 id 属性,而是在 html 上的方法中传递元素,并在 javascript 中接受和使用该元素/jquery.

这是我的代码:

function isNumberKey(evt, element) {
  var charCode = (evt.which) ? evt.which : event.keyCode
  if (charCode > 31 && (charCode < 48 || charCode > 57))
    return false;
  else {
    var len = $('#rate').val().length;
    var index = $('#rate').val().indexOf('.');

    if (index > 0 && charCode == 46) {
      return false;
    }
    if (index > 0) {
      var CharAfterdot = (len + 1) - index;
      if (CharAfterdot > 3) {
        return false;
      }
    }

  }
  return true;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" class="form-control" id="rate" name="rate" placeholder="Billing Rate" required onkeypress="return isNumberKey(event,this)">

最佳答案

我找到了解决方案。为任何与我有相同需求的人添加代码。

/*
 *  Function to allow decimal numbers to be entered in the text box
 *   - allows integers, backspace and delete
 *   - does not allow alphabets
 *   - allows only one decimal point
 *   - allows only two digits after decimal point
 */
function isNumberKey(evt, element) {
  var charCode = (evt.which) ? evt.which : window.event.keyCode;
  if (charCode > 31 && (charCode < 48 || charCode > 57) && !(charCode == 46 || charCode == 8))
    return false;
  else {
    var len = $(element).val().length;
    var index = $(element).val().indexOf('.');
    if (index > 0 && charCode == 46) {
      return false;
    }
    if (index > 0) {
      var CharAfterdot = (len + 1) - index;
      if (CharAfterdot > 3) {
        return false;
      }
    }

  }
  return true;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" class="form-control" id="rate" name="rate" placeholder="Billing Rate" required onkeypress="return isNumberKey(event,this)">

谢谢。

关于javascript - 文本框仅允许小数、删除和退格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30907160/

相关文章:

javascript - 为什么我应该使用 & 而不是 &?

javascript - jQuery.fadeOut() 函数内部的整数倾斜?

javascript - 如何检测通过 Image() 构造的任何图像是否更改了其源?

javascript - JQuery 可排序包含不起作用

javascript - 根据另一个数组从 JavaScript 数组中删除重复项?

html - CSS <li> 不扩展

javascript - parsley.js 不以法语显示错误消息

javascript - 如何在 PhoneGap/Android 中实现日期选择器?

javascript - Chrome 控制台 .click() 在一个网站上有效,但在另一网站上无效。为什么以及如何?

javascript - jQuery 平滑滚动,当页面滚动到相应部分时添加一个 active 类来锚定