js中onblur与onfocus函数中的几点区别与联系

js 失去焦点 并得到焦点

  1. <mce:styletype="text/css"><!-- 
  2. button1,.button2,.button3 { 
  3. height: 28px; 
  4. width: 60px; 
  5.   
  6. .button2{background-image: url(InsUserA.gif);}  
  7. .button3 { 
  8. background-image: url(RplyPwd.gif);} 
  9. --></mce:style><styletype="text/css"mce_bogus="1">button1,.button2,.button3 { 
  10. height: 28px; 
  11. width: 60px; 
  12.   
  13. .button2{background-image: url(InsUserA.gif);}  
  14. .button3 { 
  15. background-image: url(RplyPwd.gif);}</style> 
  16. <input type="button"class="button2"name="OUT_PWD"value=""onmouseover="this.className='button3';"/> 
  17. <inputtype="button"class="button3"name="OUT_PWD"value=""onmouseover="this.className='button2';"/> 
  18. <input type="text"value=""onblur="javascript:alert('失去焦点');this.focus()"/> 

整体post 传递值

  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html; charset=GB2312" /> 
  4. <mce:script language="JavaScript"><!-- 
  5. function check() {  
  6.   if(myForm.username.value.length < 6 || myForm.username.value.length >15) {  
  7.    alert("用户名必需有6~15的字符");  
  8.    myForm.username.value=""
  9.    myForm.username.focus();  
  10.    return false;  
  11. }  
  12. }  
  13. // --></mce:script> 
  14. </head> 
  15. <body> 
  16. <form action="register.jsp" method="post" name="myForm" onSubmit="return check()">  
  17. <table width="80%" align="center" border="1"  cellspacing="0" bordercolor="#999999">  
  18. <tr align="center">  
  19. <td colspan="2"> <br>用户注册 </td>  
  20. </tr>  
  21. <tr>  
  22. <td width="15%">用户名: </td>  
  23. <td> <input type="text" name="username" maxlength="15" size="30" id="name"/>  
  24. <input type="Submit" name="Submit"/></td>  
  25. <tr/>  
  26. </form> 
  27. </body> 
  28. </html> 

鼠标事件 与 onblur事件的联系

[c-sharp] view plaincopyprint?

  1. 经常看见一些网站的搜索框里会有一个预先设置好的提示,然后当你将鼠标点进去以后,里面的内容就清空了。学VB的时候这功能很容易就实现了,也就是简单的setfocus和lostfocus哈,不过JS里面可不是这样的。 
  2. JavaScript代码 
  3.    1. <input name="word" class="seachInput" value="sfrost.org" οnfοcus="if (value =='sfrost.org'){value =''}" οnblur="if (value ==''){value='sfrost.org'}" />   
  4. 这段代码中,使用了JS的focus和blur方法,其实对应的就是VB的setfocus和lostfocus方法。当文本框获得焦点时触发onfocus方法,而当焦点离开时则触发onblur方法。 
  5. 通过这样的方法,可以实现:输入内容出错的时候,在提交表单的时候提示出错,并将出错位置的数据清空,然后使其获得焦点。 

之前写的js事件onblur和focus里面认为是对象失去焦点的同时获得焦点,而由于onblur会在事件完成后再来一次所以导致的死循环是我猜测错了。

虽然确实是因为onblur和focus死循环引起的,不过是1对象的onblur后重新获得焦点时导致2对象的onblur,如此循环所致。测试代码如下。

<script>
var count = 0;
function dochange(o) {
// ...
o.focus();
// alert('afer o.focus : ' + count);
count++;
}
</script>

<input type="text" name="txt" value="123" οnblur="dochange(this)"/>
<input type="text" name="txt2" value="12322" οnblur="dochange(this)"/>

1.1失去焦点,触发dochange事件,同时2获得焦点;
2.1重新获得焦点,使得2失去焦点,触发2的dochange事件,1事件完成;
3.2重新获得焦点,使得1再次失去焦点,2事件完成。
4.循环。
再添加了一个alert后不会出现死循环是因为,alert语句使得焦点移到了window。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值