使用javascript或jquery只允许输入2个小数点的文本框

Allow only 2 decimal points entry to a textbox using javascript or jquery?

本文关键字:2个 输入 小数点 文本 javascript jquery 许输入 使用      更新时间:2023-09-26

我为我的文本框调用了一个名为test的类。当我输入第一个值时,例如第一个值是4.,然后突然输出是4.00。我只是想限制输入只能有两个小数点

$(".test").keyup(function (event) {
    debugger;
    this.value = parseFloat(this.value).toFixed(2);
});

对你的代码做一点小小的改变就足够了:

  this.value = this.value.replace (/('.'d'd)'d+|(['d.]*)[^'d.]/, '$1$2');

本质上是用小数点和前两位数字替换后跟任意数字的小数点。

这样怎么样:

$(".test").keyup(function (event) {
if ((pointPos = this.value.indexOf('.')) >= 0)
    $(this).attr("maxLength", pointPos+3);
else
    $(this).removeAttr("maxLength");
});

你可以使用maxLength属性,试试

 $(".test").keyup(function (event) {
        var last = $(this).val()[$(this).val().length - 1];
        if (last == '.') {
            $(".test").attr("maxlength", $(this).val().length+2);
         }
    });

在用户提交表单之前,您不应该担心用户输入中的内容。你真的不在乎在那之前里面有什么。然而,如果你想警告无效的输入,你可以在屏幕上显示一条消息,如果你检测到不符合的输入,例如

<script>
function validate(element) {
  var re = /^'s*'d*'.?'d{0,2}'s*$/;
  var errMsg = "Number must have a maximum of 2 decimal places";
  var errNode = document.getElementById(element.name + '-error')
  if (errNode) {
    errNode.innerHTML = re.test(element.value)? '' : errMsg;
  }
}
</script>    

您可能还应该在更改处理程序上放置一个侦听器,以说明通过其他方式到达那里的值

$(document).on("keyup", ".ctc", function () 
 {
    if (!this.value.match(/^'s*'d*'.?'d{0,2}'s*$/) && this.value != "") {
        this.value = "";
        this.focus();
        alert("Please Enter only alphabets in text");
    }
});