请教,<input onfocus="alert('focus')" value="focus">停不了
写系统网页的时候,无意中发现,在<input type="text">里面,如果有onfocus事件,而事件触发的function里面,如果有alert的话,就会不断重复那个alert的弹出窗口。
我的浏览器是360的,版本3207。我试了一下IE8,就不会出现这个问题。而且,好像只有我的电脑会发生这种情况。
代码如下:
HTML code
<html>
<body class="bodyIndex">
<input class="textbox" id="txt" onfocus="check2()">
<input onblur="check1()" id="txt1" class="textbox">
<script language="javascript">
function check3(){
alert("check3,click");
}
function check2(){
txt.value+="a";
///alert("check2.focus"); //*
}
function check1(){
alert("check1,blur");
if (!checkNumber(txt1,"",0,1,0))
txt.value+=", input error.";
}
</script>
</body>
</html>
如果把*那行的//去掉的话,就会自动循环起来,字母“a”会不断增加。
请问哪位知道是什么回事?
------解决方案--------------------你的函数自己就是这么写的啊。每次获得焦点就执行这些操作。
你想完成什么功能?
------解决方案--------------------应该是你的js写法不标准导致ie8脚本出错,致使你的alert无法继续运行。
txt.value+="a";你的意思是id="txt"的input的value=a;但是这么写在其他浏览器中无法识别txt这个变量,应该改为document.getElementById('txt').value='a';
------解决方案--------------------当然了,点击确定后焦点又回到textbox中,怎么可能停的下来呢
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------哎,大哥,那说明IE版本可能不同,但一般情况下,都是会出现这种情况的,你不去执行alert()只是给其赋值时或触发焦点事件时不失去焦点,那么它只会执行一次
------解决方案--------------------这个无需测试,你只要不要用alert(),它文本不失去焦点,就不会出现这种情况,或者你用onfocus="document.getElementById("").value="a";"试试,