【问题标题】:restrict textbox to allow only integers in asp.net through javascript通过 javascript 限制文本框仅允许在 asp.net 中使用整数
【发布时间】:2011-08-10 11:09:54
【问题描述】:

我有 asp:textbox 我想限制文本框只允许整数值。 如何在 asp.net 中使用 javascript 来做到这一点。

【问题讨论】:

    标签: javascript asp.net


    【解决方案1】:

    如果您使用替换功能和一些正则表达式,您将能够做到这一点。

    <input type="text" name="textbox" onkeyup="integersOnly(this)">
    
    <script type="text/javascript">
        function integersOnly(obj) {
            obj.value = obj.value.replace(/[^0-9-.]/g,'');
        }
    </script>
    

    这也将保留在小数位。

    如果您只想要整数,请使用:

    obj.value = obj.value.replace(/[^0-9]/g,'');
    

    这个函数所做的只是获取输入的内容并删除所有不是数字的字符。

    或者,您可以在 jQuery 中执行此操作。如果你使用 jQuery,请告诉我,我会告诉你我是怎么做的。

    编辑

    根据您的评论,您可以使用以下更新的功能:

    var integer_only_warned = false;
    function integersOnly(obj) {
        var value_entered = obj.value;
        if (!integer_only_warned) {
            if (value_entered.indexOf(".") > -1) {
                alert('Please enter an integer only. No decimal places.');
                integer_only_warned = true;
                obj.value = value_entered.replace(/[^0-9]/g,'');
            }
        }
        obj.value = value_entered.replace(/[^0-9]/g,'');        
    }
    

    这是首先检查是否输入了小数。如果有,则警告用户,然后删除小数位。我还添加了一个检查,这样警告只会在每次页面加载时出现。

    希望对您有所帮助。

    【讨论】:

    • 嗨,而不是替换,我可以找到它是整数还是浮点数(如 10.2)。如果按照你的建议使用函数,将 num 替换为 102。但是我可以找到数字是整数还是浮点数,如果浮点数我可以显示警报消息,比如只输入整数。
    • 我已经用函数的更新版本更新了上面的答案。希望对您有所帮助。
    【解决方案2】:

    使用RegularExpressionValidator 控件并将EnableClientScript 属性设置为True。

    【讨论】:

      【解决方案3】:
      【解决方案4】:

      顺便说一句,如果您碰巧使用 AJAX 控制工具包,那么已经构建了一个扩展器,可以轻松过滤内容:http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/FilteredTextBox/FilteredTextBox.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多