限制文本框只允许通过javascript在asp.net中使用整数

时间:2011-08-10 11:09:54

标签: javascript asp.net

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

如果您使用替换功能和一些规则表达式,您将能够执行此操作。

<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,'');        
}

这样做首先要检查是否输入了小数。如果有,那么它会警告用户,然后删除小数位。我还添加了一个检查,以便每次加载页面时都会出现警告。

希望有所帮助。

答案 2 :(得分:0)

答案 3 :(得分:0)

如果您正好使用AJAX Control Toolkit,那么就已经构建了一个扩展程序,可以轻松过滤内容:http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/FilteredTextBox/FilteredTextBox.aspx