【发布时间】:2011-08-10 11:09:54
【问题描述】:
我有 asp:textbox 我想限制文本框只允许整数值。 如何在 asp.net 中使用 javascript 来做到这一点。
【问题讨论】:
标签: javascript asp.net
我有 asp:textbox 我想限制文本框只允许整数值。 如何在 asp.net 中使用 javascript 来做到这一点。
【问题讨论】:
标签: javascript asp.net
如果您使用替换功能和一些正则表达式,您将能够做到这一点。
<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,'');
}
这是首先检查是否输入了小数。如果有,则警告用户,然后删除小数位。我还添加了一个检查,这样警告只会在每次页面加载时出现。
希望对您有所帮助。
【讨论】:
使用RegularExpressionValidator 控件并将EnableClientScript 属性设置为True。
【讨论】:
顺便说一句,如果您碰巧使用 AJAX 控制工具包,那么已经构建了一个扩展器,可以轻松过滤内容:http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/FilteredTextBox/FilteredTextBox.aspx
【讨论】: