如何使input失去焦点?

时间:2022-05-26 08:16:06
在一个弹出层里放了input~当点击了input后再把弹出层display设置为none时~光标仍然"残留"在屏幕上~

请问怎么才能使input失去焦点~

试过$("#inputID").blur()、$("#inputID").hide()、$("#其他控件").focus()都不行~

请教大牛~谢谢~

17 个解决方案

#1


代码贴出来看下吧

#2


lz,干脆 input . visible = false 吧, 或者 enabled=false?

#3


或者通过 触发 其他 输入控件 的得到焦点事件。
input2.focus(),
模拟点击也行。input2.click()

#4


你先确定input没有失去焦点吗?如何确定的?如果确定,那这样会造成什么后果吗?请描述一下?

#5


to 2楼:
隐藏弹出层的代码是  $("[id$=popupDiv]").hide();

to 3楼:
试过$("#其他控件").focus()都不行~

to 4楼:
后果就是弹出层隐藏了~但是光标仍然"残留"在屏幕上~

#6


onblur 事件会在对象失去焦点时发生。
asp.net的textbox也也可以使用这个事件

在本例中,我们将在用户离开输入框时执行 JavaScript 代码:

<html>
<head>
<script type="text/javascript">
function upperCase()
{
var x=document.getElementById("fname").value
document.getElementById("fname").value=x.toUpperCase()
}
</script>
</head>

<body>

输入您的姓名:
<input type="text" id="fname" onblur="upperCase()" />

</body>
</html>

#7


贴代码吧,楼主。

#8


引用 5 楼 callmesai 的回复:
后果就是弹出层隐藏了~但是光标仍然"残留"在屏幕上~

你是说那条一闪一闪的竖线,还在被隐藏文本框之前的位置上闪动?

那试试先不要隐藏,只用blur()隐藏焦点试试行不?

#9


引用 7 楼 personball 的回复:
贴代码吧,楼主。


$("[id$=popupDiv]").hide();

隐藏弹出层代码就一句呀~不明白您想要的代码是?

#10


引用 8 楼 caikanxp 的回复:
引用 5 楼 callmesai 的回复:
后果就是弹出层隐藏了~但是光标仍然"残留"在屏幕上~

你是说那条一闪一闪的竖线,还在被隐藏文本框之前的位置上闪动?

那试试先不要隐藏,只用blur()隐藏焦点试试行不?


是的!!

试过$("#inputID").blur()、$("#inputID").hide()、$("#其他控件").focus()都不行~

#11


弹出层的代码

#12


直接上完整的代码,大家才好帮你分析,或者换个浏览器试试。

#13


引用 11 楼 limengxiang2009 的回复:
弹出层的代码


<div><input id="inputID"></div>

就在一个div里放一个input咯

#14


貌似是IE8的一个bug~QQ空间的留言板也有这样问题~~但是在ff里正常~

#15


 onfocus="document.getElementById('ucMultiViewSeach1_txt_SearchKey').focus();"
我用人格担保 任何手段都不能插入值。。。当然除了服务器端和js赋值

#16


我也遇到同样的问题,ie7 8都不行 ff chrom opra 都好的,感觉应该可以解决:把焦点移至弹出框即可,例如$('#弹出div').focus

#17


 <input name="school" onclick="弹出框;school.blur();return false;" autocomplete="on" />
焦点就没了,各个浏览器都ok

#1


代码贴出来看下吧

#2


lz,干脆 input . visible = false 吧, 或者 enabled=false?

#3


或者通过 触发 其他 输入控件 的得到焦点事件。
input2.focus(),
模拟点击也行。input2.click()

#4


你先确定input没有失去焦点吗?如何确定的?如果确定,那这样会造成什么后果吗?请描述一下?

#5


to 2楼:
隐藏弹出层的代码是  $("[id$=popupDiv]").hide();

to 3楼:
试过$("#其他控件").focus()都不行~

to 4楼:
后果就是弹出层隐藏了~但是光标仍然"残留"在屏幕上~

#6


onblur 事件会在对象失去焦点时发生。
asp.net的textbox也也可以使用这个事件

在本例中,我们将在用户离开输入框时执行 JavaScript 代码:

<html>
<head>
<script type="text/javascript">
function upperCase()
{
var x=document.getElementById("fname").value
document.getElementById("fname").value=x.toUpperCase()
}
</script>
</head>

<body>

输入您的姓名:
<input type="text" id="fname" onblur="upperCase()" />

</body>
</html>

#7


贴代码吧,楼主。

#8


引用 5 楼 callmesai 的回复:
后果就是弹出层隐藏了~但是光标仍然"残留"在屏幕上~

你是说那条一闪一闪的竖线,还在被隐藏文本框之前的位置上闪动?

那试试先不要隐藏,只用blur()隐藏焦点试试行不?

#9


引用 7 楼 personball 的回复:
贴代码吧,楼主。


$("[id$=popupDiv]").hide();

隐藏弹出层代码就一句呀~不明白您想要的代码是?

#10


引用 8 楼 caikanxp 的回复:
引用 5 楼 callmesai 的回复:
后果就是弹出层隐藏了~但是光标仍然"残留"在屏幕上~

你是说那条一闪一闪的竖线,还在被隐藏文本框之前的位置上闪动?

那试试先不要隐藏,只用blur()隐藏焦点试试行不?


是的!!

试过$("#inputID").blur()、$("#inputID").hide()、$("#其他控件").focus()都不行~

#11


弹出层的代码

#12


直接上完整的代码,大家才好帮你分析,或者换个浏览器试试。

#13


引用 11 楼 limengxiang2009 的回复:
弹出层的代码


<div><input id="inputID"></div>

就在一个div里放一个input咯

#14


貌似是IE8的一个bug~QQ空间的留言板也有这样问题~~但是在ff里正常~

#15


 onfocus="document.getElementById('ucMultiViewSeach1_txt_SearchKey').focus();"
我用人格担保 任何手段都不能插入值。。。当然除了服务器端和js赋值

#16


我也遇到同样的问题,ie7 8都不行 ff chrom opra 都好的,感觉应该可以解决:把焦点移至弹出框即可,例如$('#弹出div').focus

#17


 <input name="school" onclick="弹出框;school.blur();return false;" autocomplete="on" />
焦点就没了,各个浏览器都ok