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 展开
这个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 展开
7个回答
展开全部
这个问题我和我同事花了一中午
用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>
用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>
展开全部
使用vs里边已给验证控件,简单的设置格式就可以了。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JS加正则表达式 是不错的选择。也可以在后台判断。不过用户体验肯定比不上JS
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是要0.023这种小数么?
如果是这样建议你用正则表达式来判断。
相关正则表达式的书写http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm这里有,说的很详细,你用半个小时就能学会
如果是这样建议你用正则表达式来判断。
相关正则表达式的书写http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm这里有,说的很详细,你用半个小时就能学会
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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>
控制下键盘就可以了
oncheckKey():是我自己定义的函数
<script language=javascript>
function oncheckKey()
{
if(window.event.keyCode!=255)
{
if(window.event.keyCode!="48"&window.event.keyCode!="49")
{
alert('不能输入该值');
return;
}
}
}
</script>
控制下键盘就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询