c# 如何让textbox只能输入小数(只能两位)

使用的是standard控件,不是html的控件这个textbox是要连接后台的我想叫这个textbox只能输入小数,输入其他的就写不进去有一种方法是只能输入数字的,只需... 使用的是standard控件,不是html的控件
这个textbox是要连接后台的
我想叫这个textbox只能输入小数,输入其他的就写不进去
有一种方法是只能输入数字的,只需要在前台判断就ok了:
<asp:textbox id="TextBox1" onkeyup="if(isNaN(value))execCommand('undo')" runat="server"
Width="80px" onafterpaste="if(isNaN(value))execCommand('undo')"></asp:textbox>
很好用,有没有人知道这种方法来判断小数的?
请把代码写的清楚全面些
谢谢了~~~~~~
补充一下 是只能输入0到1的数字~!
这个数大于等于0小于等于1
展开
 我来答
带我信乐
推荐于2016-11-24 · TA获得超过1353个赞
知道小有建树答主
回答量:680
采纳率:0%
帮助的人:713万
展开全部
这个问题我和我同事花了一中午
用2中方式实现,你直接拷贝保存成HTML控件,觉得好用,就。。。。哈哈。
第一种:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function testA(e){
var testValue =document.getElementById(e.id);
testValue.value =testValue.value.replace(/[^\d\.]/g,'');
if(testValue.value.indexOf(".")>-1 ){
//防止连续输入2次与2次出现小数点号.
if(testValue.value.substring(testValue.value.indexOf(".")+1,testValue.value.length).indexOf(".")>-1){
testValue.value = testValue.value.substring(0,testValue.value.lastIndexOf("."));
}
//只能输入2位,将ponit设为3将只能输入3位
var ponit= 2 ;
if(testValue.value.substring(testValue.value.indexOf(".")+1,testValue.value.length).length>=ponit){
testValue.value = ForDight( parseFloat(testValue.value),ponit);
}
}
//数字只能在0-1直接
if( parseFloat(testValue.value)>=1 || parseFloat(testValue.value)<0){
testValue.value = '0.00'
}
}
//ForDight(Dight,How):数值格式化函数,Dight要 * 格式化的 数字,How要保留的小数位数。
function ForDight(Dight,How){
var Dight = Math.round (Dight*Math.pow(10,How))/Math.pow(10,How);
return Dight;
}
//-->
</SCRIPT>
</HEAD>
<BODY>
这个是HTML的页面 直接把相关JS放到 ASPX的设计页面
<hr />
输入框
<input id="testA" onkeyup="testA(this)"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d\.]/g,''))"
>
<hr />
你最好 前台判断,提高用户体验;后台也判断吧,保证安全.
这个兼容不兼容我也没测试。
</BODY>
</HTML>

第二种:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function testA(e){
var testValue =document.getElementById(e.id);
var temp = testValue.value.replace(/[^\d\.]/g,'');
//如果要输入3位 就匹配表达式改为 regE = /^\d*\.?\d{0,3}$/;
var regE = /^\d*\.?\d{0,2}$/;
var str='';
var i = 1;
while(i<=temp.length)
{
var gd;
gd = temp.substring(i,0);
if(regE.test(gd) == true)
{
str=gd;
}
i++;
}
testValue.value = str;
if(parseFloat( testValue.value) >=1 || parseFloat( testValue.value)<0){
testValue.value='0.00';
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<input id="testA" onkeyup="testA(this)" >
<input id="testB" onkeyup="testA(this)" >
</BODY>
<HTML>
fory77
2009-06-23 · 超过25用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:73.3万
展开全部
使用vs里边已给验证控件,简单的设置格式就可以了。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jacky4955
2009-06-23 · 超过15用户采纳过TA的回答
知道答主
回答量:153
采纳率:0%
帮助的人:61.1万
展开全部
JS加正则表达式 是不错的选择。也可以在后台判断。不过用户体验肯定比不上JS
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
竭铭Oh
2009-06-23 · TA获得超过161个赞
知道答主
回答量:334
采纳率:0%
帮助的人:256万
展开全部
是要0.023这种小数么?

如果是这样建议你用正则表达式来判断。
相关正则表达式的书写http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm这里有,说的很详细,你用半个小时就能学会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1c0b25d
2009-06-23 · TA获得超过186个赞
知道小有建树答主
回答量:483
采纳率:0%
帮助的人:204万
展开全部
TEXTBOX控件: <asp:TextBox ID="TextBox1" onkeydown=oncheckKey() runat="server"></asp:TextBox>

oncheckKey():是我自己定义的函数

<script language=javascript>
function oncheckKey()
{
if(window.event.keyCode!=255)
{

if(window.event.keyCode!="48"&window.event.keyCode!="49")
{
alert('不能输入该值');
return;
}
}

}
</script>

控制下键盘就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式