javascript - 小数验证允许通过 Javascript 在按键事件上小数点后保留两位数字

标签 javascript asp.net decimal

我需要在按键事件上使用纯Javascript限制用户输入小数点后两位数字。请帮忙..

EX:123.45 ->正确 123.45.6 ->不正确

function checkDec(el) {
    var ex = /^[0-9]+\.?[0-9]*$/;
    if (ex.test(el.value) == false) {
        el.value = el.value.substring(0, el.value.length - 1);
    }
}

<asp:TextBox ID="txttest0" runat="server" onkeydown="checkDec(this);" ></asp:TextBox>

我尝试过这种方式,但需要在 Keypress 中使用它。 :(

最佳答案

也许您可以使用 parseFloat 更正该值:

<input onchange="this.value = parseFloat(this.value) || ''" type="text" />

我将其更改为 onchange,因为否则它会阻止您输入 .根本不。然而,这意味着当您模糊输入时它只会验证一次。

编辑

<小时/>

就这样吗?

JS:

function validateFloatKeyPress(el, evt) {

    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode != 46 && charCode > 31
        && (charCode < 48 || charCode > 57)) {
        return false;
    }

    if (charCode == 46 && el.value.indexOf(".") !== -1) {
        return false;
    }

    return true;
}

HTML:

<input onkeypress="return validateFloatKeyPress(this, event)" type="text" />

关于javascript - 小数验证允许通过 Javascript 在按键事件上小数点后保留两位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13553444/

相关文章:

javascript - 在javascript中将整数转换为数字的小数部分最有效的方法是什么?

php - 在php中从jquery检索数组值

javascript - Ajax 与其他参数序列化,

c# - asp.net Entity Framework 数据库插入使用循环列使用 LINQ

javascript - 更改将鼠标悬停在 session 时间按钮上的工具提示内容

asp.net - 从 IIS 中嵌套应用程序的虚拟目录根中删除尾部斜杠

JavaScript:十进制值

java - 如何将一个字符串中的一个字符与另一个字符串进行比较

javascript - 在没有初始原型(prototype)的对象上设置 __proto__

javascript - setInterval 不准确的解决方法是什么?