如控制textbox文本框长度,一边打字一边显示长度呢

飞一龙 2008-12-23 11:49:12
如控制textbox文本框长度,一边打字一边显示长度呢
...全文
212 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ipqxiang 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ashou706 的回复:]
添加 js 事件 onkeydown="CheckInputTopic();"
<script>
function CheckInputTopic()
{
var TitleName = document.getElementById("TxtTitle").value;
var Lenint = len(TitleName);
document.getElementById("Msg").innerHTML = "还剩"+(50 - Lenint)+"字";
if(Lenint>50)
alert("标题太长了");
}
//判断字符长度
function len(s)
{
var l = 0;
var a = s.split("");
for (var i=0;i <a.length;i++) {
if (a[i]…
[/Quote]
同意。
ashou706 2008-12-23
  • 打赏
  • 举报
回复
添加 js 事件 onkeydown="CheckInputTopic();"
<script>
function CheckInputTopic()
{
var TitleName = document.getElementById("TxtTitle").value;
var Lenint = len(TitleName);
document.getElementById("Msg").innerHTML = "还剩"+(50 - Lenint)+"字";
if(Lenint>50)
alert("标题太长了");
}
//判断字符长度
function len(s)
{
var l = 0;
var a = s.split("");
for (var i=0;i<a.length;i++) {
if (a[i].charCodeAt(0)<299) {
l++;
} else {
l+=2;
}
}
return l;
}
</script>
chinaicm 2008-12-23
  • 打赏
  • 举报
回复
在TextChange事件中处理.
把当前的length传给一个Label.
CODE163 2008-12-23
  • 打赏
  • 举报
回复
试试CSDN插件
  • 打赏
  • 举报
回复
写js就跟写.net代码一样,写的越多可能越不好。

只写必要的js就可以了,不要写一大片。

基本上,你需要保持一定的写js时的素质,写出的代码可以重复用于处理页面上多个同样的控件,可以放到ascx中(并且这个ascx在页面上有多个实例也不出错),考虑到控件的ClientID(当你把控件重新放到不同的地方里边,或者它外边的界面设计有改变,它生成的ClientID是变动的)。
  • 打赏
  • 举报
回复
javascript中得到的字符串也是unicode的,用不着计算什么“汉字占两位”这种。

如果你要TextBox1中的内容的长度动态显示在Label1,可以在Page_Load中写:

if(!IsPostback)
this.TextBox1.Attributes["onkeyup"] = string.Format("document.getElementById('{0}').innerHTML=this.value.length;", this.Label1.ClientID);
niitnanfeng 2008-12-23
  • 打赏
  • 举报
回复
js不太安全。
dawei2310 2008-12-23
  • 打赏
  • 举报
回复
用js简单
下面使用AJAX实现的~
呵呵
页面:
<body>
<form id="form1" runat="server">
<p>
<asp:TextBox ID="TextBox1" runat="server"
ontextchanged="TextBox1_TextChanged"></asp:TextBox>
</p>
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" ontick="Timer1_Tick" Interval="100">
</asp:Timer>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>

后台代码 在Timer中的Tick事件中把长度付给Label就行了~
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = TextBox1.Text.Length.ToString();
}
takako_mu 2008-12-23
  • 打赏
  • 举报
回复
補充一點:如果用復制的話2樓的就失效了。
可以用js做TextChange動作。
wuyq11 2008-12-23
  • 打赏
  • 举报
回复
function GLen()
{
}


后台:
TextBox1.Attributes.Add("onkeydown","return GLen();");

anncesky 2008-12-23
  • 打赏
  • 举报
回复
嗯,onkeydown完全可以解决了
jiang_jiajia10 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ashou706 的回复:]
添加 js 事件 onkeydown="CheckInputTopic();"
<script>
function CheckInputTopic()
{
var TitleName = document.getElementById("TxtTitle").value;
var Lenint = len(TitleName);
document.getElementById("Msg").innerHTML = "还剩"+(50 - Lenint)+"字";
if(Lenint>50)
alert("标题太长了");
}
//判断字符长度
function len(s)
{
var l = 0;
var a = s.split("");

[/Quote]
挺好可以用

62,269

社区成员

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

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

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

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