如何在TextBox中只允许使用十进制数字

How to allow only decimal numbers in a TextBox

本文关键字:许使用 十进制数字 TextBox      更新时间:2023-09-26

我正在开发asp.net web应用程序。

我有一个文本框,在按下提交按钮之前,我需要允许使用十进制数字。那么在提交提交按钮之前,如何在客户端执行此操作。

如果可以通过javascript、ajax aur从后面的代码中完成,请告诉我。

您可以通过两种方式来实现,一种是通过asp.net的内置验证,另一种是使用javascript。通过javascript,您可以按如下方式进行操作(这将阻止用户输入字符键,因此只允许数字):

<asp:Text onkeypress="return isNumber(event);" runat="server"/>
<script>
    function isNumber(evt) {
        evt = (evt) ? evt : window.event;
        var charCode = (evt.which) ? evt.which : evt.keyCode;
        if (charCode > 31 && (charCode < 48 || charCode > 57)) {
            return false;
        }
        return true;
    }
</script>

如果您想要一个代码隐藏的替代方案,您可以依赖TryParseButton1TextBox1的示例代码:

string currentDot1 = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
string currentDot2 = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator;
string currentDot3 = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.PercentDecimalSeparator;
decimal curVal = 0m;
if (TextBox1.Text.Trim().Length > 0 && (TextBox1.Text.Contains(currentDot1) || TextBox1.Text.Contains(currentDot2) || TextBox1.Text.Contains(currentDot3)) && decimal.TryParse(TextBox1.Text, out curVal))
{
    //curVal is valid decimal
}
else
{
    //NO DECIMAL
}

与用javascript或服务器端验证编写自己的自定义验证代码不同,还有一些库允许您使用jquery在客户端进行验证。

添加这些脚本引用(您也需要jquery):

    <script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script>
    <script src="http://jquery.bassistance.de/validate/additional-methods.js"></script>

然后您可以执行以下操作:

<script type="text/javascript>
        $(document).ready(function()
        {
            $("#idOfMyForm").validate(
            {
                rules: {
                    IdOfMyTextBox: {
                        required: true,
                        number: true
                    }
                }
            });
            $("#submitButton").click(function(e){
                if(!$("#idOfMyForm").valid(){
                    e.preventDefault(); //stop the form from submitting
                    alert("My form is not valid.");
                }
                //continue submitting the form, do whatever you need to do.
            });
        });
</script>