为了账号安全,请及时绑定邮箱和手机立即绑定

javascript 表单获取焦点,明明只有一条alert,为何谷歌浏览器点击确定仍然会不断弹屏?

javascript 表单获取焦点,明明只有一条alert,为何谷歌浏览器点击确定仍然会不断弹屏?

qq_唔叫咩_0 2018-05-06 22:41:55
<form action="" method="">         <input type="text" id="txt" />         <input type="radio" id="rad" />         <input type="checkbox" id="cBox" />         <input type="button" value="button" id="btn" /></form><script type="text/javascript">         var oTxt=document.getElementById("txt");         var oBtn=document.getElementById("btn");         oBtn.onclick = function(){ oTxt.focus(); };         oTxt.onfocus=function(){         alert("我获得焦点了");         }; </script>
查看完整描述

3 回答

?
码农2号

TA贡献151条经验 获得超48个赞

因为你点击确定后,焦点还是没变,又触发了一次,往复循环。调试的话用console吧,网页需要的话,弹出一个提示也不错。非要用alert的话,立个flag啊,进入函数时候,判断flag值,flag==0时候flag==1,flag==1时候不执行函数后面的就行了。

查看完整回答
1 反对 回复 2018-05-07
?
pardon110

TA贡献1038条经验 获得超227个赞

基础知识:

  1. onclick,onfocus 事件句柄  前者鼠标点击某个对象产生事件,后者元素获得焦点后执行事件

  2. obj.focus()  给指定的元素设置焦点 (注只有能够响应用户操作额元素才可以设置焦点,input是其中之一)

分析:1.input文本类型获取焦点,出现弹窗  2.点击btn,会给文本类型input获取焦点。

所以明了:点击->焦点获取->弹窗出现  由于你点击之后,并没有提供后续的解除焦点在input:text上的事件绑定,所以弹窗一直存在。你这种情况,就好像开了一辆没有刹车器的车,只要开始了就停不下来。


查看完整回答
1 反对 回复 2018-05-07
?
Gotta

TA贡献53条经验 获得超16个赞

我猜是这样…… 当你点击alert的确定的时候……焦点会转到确定按钮上,alert消失后……焦点又回到了Input上,,所以再次触发onfocus事件……

都是猜的。。。。没有科学依据

查看完整回答
反对 回复 2018-05-07
  • 3 回答
  • 0 关注
  • 1730 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信