文本框允许使用javascript将小数限制为2

时间:2013-07-15 12:35:52

标签: javascript decimal

我有一个问题,即在文本框中将小数点后的值限制为2。

我不想使用正则表达式。  任何人都可以帮助我实现这个目标吗?

我不允许将字符和小数点限制为1,

这是我的代码:

function CheckNumeric(e) {      
if (window.event) // IE 
    {
        if ((e.keyCode < 48 || e.keyCode > 57) & e.keyCode != 8 & !(e.keyCode == 46 && e.target.value.indexOf(".") == -1)) {
            event.returnValue = false;
            return false;
        }
    }
    else { // Fire Fox
        if ((e.which < 48 || e.which > 57) & e.which != 8 & !(e.which == 46 && e.target.value.indexOf(".") == -1)) {
            e.preventDefault();
            return false;
        }
    }
    }
  }

这是我的Html代码:

 @Html.TextBox("CostperSeat", (object)item.CostperSeat, new{onkeypress="CheckNumeric(event); ", maxlength=10, style = "width:60px" })

1 个答案:

答案 0 :(得分:0)

请考虑如下:

.aspx页面中的文本框控件如下所示:

<asp:TextBox ID="TextBox1" runat="server" Width="180px" onkeypress="return onlyDotsAndNumbers(this,event)"></asp:TextBox>

请参阅onkeypress事件,调用javascript函数之一,如下所示:

function onlyDotsAndNumbers(txt, event) {
    var charCode = (event.which) ? event.which : event.keyCode   
    if (charCode == 46) {
        if (txt.value.indexOf(".") < 0)
            return true;
        else
            return false;
    }

    if (txt.value.indexOf(".") > 0) {
        var txtlen = txt.value.length;
        var dotpos = txt.value.indexOf(".");
        if ((txtlen - dotpos) > 2)
            return false;
    }

    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

    return true;
}

这会对你有所帮助。