jQuery限制货币格式的输入字段类型tel中的字符限制

时间:2018-08-30 15:01:55

标签: jquery html5

早安,

我有一个表格,用户可以在其中输入存款金额。我正在格式化该字段,以便在用户使用以下脚本输入数字时显示2个小数位:

amountValue = "";

$(function() {
  $(".mib").unbind().keydown(function(e) {
    //handle backspace key
    if (e.keyCode == 8 && amountValue.length > 0) {
      amountValue = amountValue.slice(0, amountValue.length - 1); //remove last digit
      $(this).val(formatNumber(amountValue));
    } else {
      var key = getKeyValue(e.keyCode);
      if (key) {
        amountValue += key; //add actual digit to the input string
        $(this).val(formatNumber(amountValue)); //format input string and set the input box value to it
      }
    }
    return false;
  });

  function getKeyValue(keyCode) {
    if (keyCode > 57) { //also check for numpad keys
      keyCode -= 48;
    }
    if (keyCode >= 48 && keyCode <= 57) {
      return String.fromCharCode(keyCode);
    }
  }

  function formatNumber(input) {
    if (isNaN(parseFloat(input))) {
      return "0.00"; //if the input is invalid just set the value to 0.00
    }
    var num = parseFloat(input);
    return (num / 100).toFixed(2); //move the decimal up to places return a X.00 format
  }
});

我需要将字段中的字符数限制为9。但是,脚本忽略了我的html maxlength =“ 9”:

input type="tel" id="amount" name="amount" class="full mib" pattern="\d+(\.\d{2})?$" title="Please enter a valid number">

请参阅我的fiddle

我已经尝试了一些方法来解决此问题,包括

$('input[name=amount]').attr('maxlength',9);

$('#amount').attr('maxlength',9);

肯定有一个我忽略的简单解决方案。

0 个答案:

没有答案