textbox输入问题

meteorlyang 2008-06-20 11:46:43
如何才能才textbox中输入数字时就成为金额样式##,###,###.##这种样式。是在asp.net中
因为textchange需要像服务器端提交,但是这是要在textbox失去焦点时才能触发,而我是想实时显示金额样式。
...全文
214 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Magic_YJL 2008-06-26
  • 打赏
  • 举报
回复
鄙视不揭贴的
cvily1 2008-06-23
  • 打赏
  • 举报
回复
把textbox的 aotopostback属性设成true 试试
Magic_YJL 2008-06-23
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 meteorlyang 的回复:]
这些都不对呀,都是要失去焦点才可以转成金额样式.如果是那样的话直接用ontextchanged不就行了么!!
有没有高手指点一下呀!!!
[/Quote]
请问什么叫失去焦点?
cl9876 2008-06-23
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 cvily1 的回复:]
把textbox的 aotopostback属性设成true 试试
[/Quote]
meteorlyang 2008-06-21
  • 打赏
  • 举报
回复
这些都不对呀,都是要失去焦点才可以转成金额样式.如果是那样的话直接用ontextchanged不就行了么!!
有没有高手指点一下呀!!!
无爱大叔 2008-06-20
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript">
<!--
function formatNum(obj)
{
obj.value=obj.value.replace(",","");
if(isNaN(obj.value))
{
alert('请填写数字!');
}
else
{
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;
}
}
}
}
//-->
</SCRIPT>
<FORM name=form1 METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="txt1" onblur="formatNum(this);">
</FORM>

好久没写js了累死老夫
meteorlyang 2008-06-20
  • 打赏
  • 举报
回复
能详细点么??或是给个例子的呀!!!!
满衣兄 2008-06-20
  • 打赏
  • 举报
回复
onblur

js
  • 打赏
  • 举报
回复
所以要用js实现,js有个onchange事件
HimeTale 2008-06-20
  • 打赏
  • 举报
回复
查查onBlur事件的写法
HimeTale 2008-06-20
  • 打赏
  • 举报
回复
脚本里写......
紫魂一号 2008-06-20
  • 打赏
  • 举报
回复
封装了什么方法 好象可以直接格式化。不记得了。。。
love531000 2008-06-20
  • 打赏
  • 举报
回复
偶先收藏了啊 ··谢谢了啊 ·
Magic_YJL 2008-06-20
  • 打赏
  • 举报
回复
实在不好意思,中午的时候神志不清,搂主被忽悠了一把,哈哈~

这不,我赶快把手里的活做完,就立马又修改了方法,给搂主

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function setTextValue(txtID)
{
var txt = document.getElementById(txtID);
if(txt != null)
{
var result = "";
var intPart = "";
var decimalPart = "";
var txtValue = txt.value;

if(!isNaN(txtValue))
{
if(txtValue.indexOf(".") == -1)
intPart = txtValue;
else
{
var arraySplit = txtValue.split(".");
intPart = arraySplit[0];
decimalPart = arraySplit[1];
}
if(intPart.length > 3)
{
intPart = intPart.replace(/\,/g,"");
var mod = intPart.length % 3;
var prefix = intPart.substring(0,mod);
var postfix = intPart.substring(mod,intPart.length);
var sign = 0;
while(postfix.length > 3)
{
sign ++;
if(sign % 3 == 0)
{
result += postfix.substring(0,3) + "," ;
postfix = postfix.substring(3,postfix.length);
sign = 0;
}
}
if(prefix =="")
result = result + postfix;
else
result = prefix + "," + result + postfix;
if(decimalPart != "")
result += "." + decimalPart;
txt.value = result;
}
}
}
}
</script>
</head>
<body >
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server" onblur = "setTextValue(this.id)"></asp:TextBox>
<span id="spn"></span>
</form>
</body>
</html>
大自然D使者 2008-06-20
  • 打赏
  • 举报
回复
楼主可以参考6楼和7楼的方法试一下。
Magic_YJL 2008-06-20
  • 打赏
  • 举报
回复
呵呵,没看清楚,后面还有小数点呢,再稍微修改一下就OK了
Magic_YJL 2008-06-20
  • 打赏
  • 举报
回复

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function setTextValue(txtID)
{
var txt = document.getElementById(txtID);
if(txt != null)
{
var result = "";
var txtValue = txt.value;
if(txtValue.length > 3)
{
txtValue = txtValue.replace(/,/,"");
var mod = txtValue.length % 3;
var prefix = txtValue.substring(0,mod);
var postfix = txtValue.substring(mod,txtValue.length);
for(var i = 0;i < postfix.length;i++)
{
if((i + 1) % 3 == 0 && (i != postfix.length - 1) )
{
result += postfix.substring(0,i + 1) + "," ;
postfix = postfix.substring(i + 1,postfix.length);
}
}
if(prefix =="")
txt.value = result + postfix;
else
txt.value = prefix + "," + result + postfix;
}

}
}
</script>
</head>
<body >
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server" onblur = "setTextValue(this.id)"></asp:TextBox>
</form>
</body>
</html>

楼主,看看,不知道能否满足你的要求

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧