jquery文本框的blur事件中无法实现事件末尾重新得到焦点??

时间:2022-10-05 19:52:26
$record.find(":text:eq(1)").bind("blur",function(){
   var currentId=$(this).closest("div").attr("id");
   var reg=/^.+[ ][Aa][Nn][Dd][ ].+$/;
   var text=$("div[id="+currentId+"] :text:eq(1)").val();
  var index=$("div[id="+currentId+"] select:eq(2)")[0].selectedIndex;
    if($("div[id="+currentId+"] select:eq(2)")[0].options[index].text.indexOf("BETWEEN")>-1)
    {
            if(reg.test(text))
   {
               return;   
   }
  else
   {  
          $("div[id=0] :text:eq(1)")[0].focus();//无法重新得到焦点
 alert("BETWEEN语句格式错误");
                                                                            
     }
                                                           
     }
                                                        
                                                   });



function getFocus()
{
        $("div[id=0] :text:eq(1)")[0].focus();//另外用个按钮绑定该点击事件,则可以让该文本框得到焦点
}

8 个解决方案

#1


仔细观察发现,在用鼠标使该文本框失去焦点的时候,是先执行完毕失去焦点事件,然后鼠标在刚才点击的地方完成点击,也就是为了触发失去焦点事件,鼠标在其他地方的点击动作被BLUR事件分割了,该鼠标在其它地方点击的动作在blur事件完成后才完成,所以即使在blur事件末使文本框得到焦点,依然被外部鼠标点击动作所覆盖到其余位置,该如何解决呢?

#2


很多天过去了。。

#3


关注中~~~·

#4


我这个代码里有用到很多jquery方法,
简单点说,就是一个元素绑定blur事件后,如何使blur事件结束后实现focus()到绑定的元素上

#5


有没有用firefox  的 js 调试 工具 firebug,用这个浏览器工具就可以跟宗 整个 javascript 执行 流程及出现问题的地方。。。。

#6


因为blur是在失去焦点之前发生吧,可以试试setTimeOut('$("div[id=0] :text:eq(1)")[0].focus();',0)

#7


你是不是想做焦点切换的功能

#8


做焦点切换?
换成bind("click",function(){})
unbind("click");
我就是用bind,unbind写的!

#1


仔细观察发现,在用鼠标使该文本框失去焦点的时候,是先执行完毕失去焦点事件,然后鼠标在刚才点击的地方完成点击,也就是为了触发失去焦点事件,鼠标在其他地方的点击动作被BLUR事件分割了,该鼠标在其它地方点击的动作在blur事件完成后才完成,所以即使在blur事件末使文本框得到焦点,依然被外部鼠标点击动作所覆盖到其余位置,该如何解决呢?

#2


很多天过去了。。

#3


关注中~~~·

#4


我这个代码里有用到很多jquery方法,
简单点说,就是一个元素绑定blur事件后,如何使blur事件结束后实现focus()到绑定的元素上

#5


有没有用firefox  的 js 调试 工具 firebug,用这个浏览器工具就可以跟宗 整个 javascript 执行 流程及出现问题的地方。。。。

#6


因为blur是在失去焦点之前发生吧,可以试试setTimeOut('$("div[id=0] :text:eq(1)")[0].focus();',0)

#7


你是不是想做焦点切换的功能

#8


做焦点切换?
换成bind("click",function(){})
unbind("click");
我就是用bind,unbind写的!