关于焦点的问题

瑞雪骄阳 2005-09-27 11:06:03
有两个textBox控件,焦点textBox1中,在我想点击enter键时,判断textBox1是否为空,如不为空焦点移到textBox2,否则焦点不移动并显示错误信息。并且当用鼠标移动焦点时,也做如此判断。我的代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
myproject.setfoucus.setfocus(this.TB1);
TB1.Attributes.Add ("onkeypress","if(event.keyCode==13){event.returnValue = false;com1("+this.TB1.ClientID+","+this.TB2.ClientID+");return false;}");
TB1.Attributes.Add ("onblur","com1("+this.TB1.ClientID+","+this.TB2.ClientID+");return false;");}



<script language="javascript">

function com1(text1,text2)
{

var s=text1.value;
if(s=="")
{ text1.focus();
alert("it can't be null");
}
else
{
text2.focus();
}
}

function com2(text1)
{
var s=text1.value;
if(s=="")
{ text1.focus();
alert("it can't be null");
}
else
{document.all[B1].focus();
}

}
</script>

但是当按ENTER键时会提示两次错误信息,请问该如何解决?
多谢了
...全文
244 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
龍过鸡年 2005-09-28
  • 打赏
  • 举报
回复
楼上的你试过以后再说 我的代码已经通过测试了
瑞雪骄阳 2005-09-27
  • 打赏
  • 举报
回复
如何使点击enter键时,不执行onblur事件
有没有人知道啊?
瑞雪骄阳 2005-09-27
  • 打赏
  • 举报
回复
如何使点击enter键时,不执行onblur事件
有没有人知道啊?
瑞雪骄阳 2005-09-27
  • 打赏
  • 举报
回复
大哥我是想用鼠标移动焦点或点击enter键时都判断Textbox是否为空
龍过鸡年 2005-09-27
  • 打赏
  • 举报
回复
<html>
<head>
<script>
function checkKey()
{
if(event.keyCode == 13)
{
if (text1.value == "") text1.select();
else text2.select();
}
}
</script>
</head>
<body>
<input type="text" name="text1" onkeypress="checkKey()" id="text1">
<input type="text" name="text2" id="Text2">
</body>
</html>

以上代码测试成功
瑞雪骄阳 2005-09-27
  • 打赏
  • 举报
回复
要实现上面的功能该怎么做啊?
瑞雪骄阳 2005-09-27
  • 打赏
  • 举报
回复
还是不行,这是因为按Enter键时,激发了onkeypress和onblur的事件,所以提示两次错误信息。
有没有高手帮我解决以下啊?
cw888 2005-09-27
  • 打赏
  • 举报
回复
onblur 和 onkeypress击活了俩次事件;就会按ENTER键时提示两次错误信息
swordragon 2005-09-27
  • 打赏
  • 举报
回复
换为onkeydown或者onkeyup事件试验一下哟。
liuqinglq 2005-09-27
  • 打赏
  • 举报
回复
楼上说的不对 使用 onblur 是对的

-----------------------------------------

用onblur,在回车时就会两个事件都触发,用onchange不会

至于你写的,不符合楼主的要求...

当然,用onblur也可以使得在回车时只触发onKeyPress事件,不过要复杂一些。
龍过鸡年 2005-09-27
  • 打赏
  • 举报
回复
楼上说的不对 使用 onblur 是对的
liuqinglq 2005-09-27
  • 打赏
  • 举报
回复
楼主只要把 onblur 改成 onchange 就可以了

不过由于onchange这个事件一定要有change才触发,而楼主的TextBox似乎初始值为空,这样第一次触发就不可能

所以楼主把TB1的初始值改成非空才可以,比如这样

<asp:TextBox id="TB1" runat="server">请输入</asp:TextBox>
龍过鸡年 2005-09-27
  • 打赏
  • 举报
回复
搞不懂,为什么我怎么做都可以实现你要的功能呢?

function checkKey()
{
if(event.keyCode == 13)
{
if (text1.value == "") text1.select();
else text2.select();

}
}

function checkBlur()
{
if (text1.value == "") text1.select();
else text2.select();
}

<input type="text" name="text1" onkeypress="checkKey()" onblur="checkBlur" id="text1">
瑞雪骄阳 2005-09-27
  • 打赏
  • 举报
回复
怎么改,具体一点好吗?
多谢了
龍过鸡年 2005-09-27
  • 打赏
  • 举报
回复
将 text1 的 onblur 事件改为 text2 的 onfocus 事件
<html>
<head>
<script>
function checkKey()
{
if(event.keyCode == 13)
{
if (text1.value == "") text1.select();
else text2.select();
}
}

function checkFocus()
{
if (text1.value == "") text1.select();
}
</script>
</head>
<body>
<input type="text" name="text1" onkeypress="checkKey()" id="text1">
<input type="text" name="text2" onfocus="checkFocus()" id="Text2">
</body>
</html>

62,266

社区成员

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

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

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

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