我有asp:textbox我想限制文本框只允许整数值。 我怎么能在asp.net中使用javascript来做到这一点。
答案 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