由于textbox的ontextchanged事件需要向服务器端提交后才能实现内容的变化,而且不能保证只输入数字.所以搞了半天,终于有一点小成果.可以实时的把数字转换为金额样式,并且只能为数字,后也可以输入两位有效数字.和你读出数据用的tostring("N")是差不多的,但是那个需要转换,即和ontextchanged事件一样需要失去焦点后才能显示出结果,不能实时.好,下面贴出代码.由于textbox的ontextchanged事件需要向服务器端提交后才能实现内容的变化,而且不能保证只输入数字.所以搞了半天,终于有一点小成果.可以实时的把数字转换为金额样式,并且只能为数字,后也可以输入两位有效数字.和你读出数据用的tostring("N")是差不多的,但是那个需要转换,即和ontextchanged事件一样需要失去焦点后才能显示出结果,不能实时.好,下面贴出代码.
js文件:
function formatNum(obj)
{
var n3;
if(obj.value.split(".").length>1)//带小数点的
{
n3=obj.value.split(".")[0];
}
else
{
n3=obj.value;
}
var brr=new Array();
var m=0;
for(i=0;i<n3.length;i+=3)
{
m++;
}
for(k=0;k<=m;k++)
{
obj.value=obj.value.replace(",","");
}
if(isNaN(obj.value))
{
alert('请填写数字!');
obj.value="";
}
var n1=obj.value;
if(obj.value.split(".").length>1)//带小数点的
{
var n1=obj.value.split(".")[0];
var n2=obj.value.split(".")[1].substring(0,2);
if(n1>3)
{
var tempStr="";
var arr=new Array();
var j=0;
for(i=0;i<n1.length;i+=3)
{
arr[j] = n1.substring(n1.length-(i+3),n1.length-i);j++
}
tempStr = arr.reverse();
obj.value=tempStr+"."+n2;
}
}
else//不带小数点的
{
var n1=obj.value;
if(n1>3)
{
var tempStr="";
var arr=new Array();
var j=0;
for(i=0;i<n1.length;i+=3)
{
arr[j] = n1.substring(n1.length-(i+3),n1.length-i);j++
}
tempStr = arr.reverse();
obj.value=tempStr;
}
}
}
function out(obj)
{
if(obj.value.split(".").length>1)//带小数点的
{
return;
}
else
{
obj.value=obj.value+".00";
}
}
aspx:
<asp:TextBox ID="TextBox1" runat="server" onkeyup= "formatNum(this);" onfocusout="out(this)"></asp:TextBox>
2万+

被折叠的 条评论
为什么被折叠?



