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()到绑定的元素上
简单点说,就是一个元素绑定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写的!
换成bind("click",function(){})
unbind("click");
我就是用bind,unbind写的!
#1
仔细观察发现,在用鼠标使该文本框失去焦点的时候,是先执行完毕失去焦点事件,然后鼠标在刚才点击的地方完成点击,也就是为了触发失去焦点事件,鼠标在其他地方的点击动作被BLUR事件分割了,该鼠标在其它地方点击的动作在blur事件完成后才完成,所以即使在blur事件末使文本框得到焦点,依然被外部鼠标点击动作所覆盖到其余位置,该如何解决呢?
#2
很多天过去了。。
#3
关注中~~~·
#4
我这个代码里有用到很多jquery方法,
简单点说,就是一个元素绑定blur事件后,如何使blur事件结束后实现focus()到绑定的元素上
简单点说,就是一个元素绑定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写的!
换成bind("click",function(){})
unbind("click");
我就是用bind,unbind写的!