注册 登录
编程论坛 JavaScript论坛

javascript验证表单问题2(不停弹出警告框)

bccnlyd 发布于 2011-02-21 13:52, 1087 次点击
代码如下 :
    function CheckInput(obj)
    {
        var tempValue = obj.value;

        if(!((tempValue == "A") || (tempValue == "B") || (tempValue == "C")))
        {
            alert("请输入A、B或C!");
            obj.focus();
            obj.value = "";
        }
    }
<input id="result" type=text name=<%=i%>_YUWEN size=1 maxlength=1  onBlur="CheckInput(this)"

当我在输入框中输入非A、B、C的字母后,系统多次弹出提示框,有时2,3次,有时更多。
不知是何原因?

[ 本帖最后由 bccnlyd 于 2011-2-21 13:58 编辑 ]
6 回复
#2
三刀一个猪头2011-02-21 15:35
怀疑你点到空白的地方了,并且此时存在交点,也就触发了
#3
努力加油2011-02-23 22:52
onBlur和alert建议不要这样使用,这样使用会容易形成死循环,建议在文本框后面加一个span标签好写,
#4
bccnlyd2011-03-22 11:18
以下是引用努力加油在2011-2-23 22:52:20的发言:

onBlur和alert建议不要这样使用,这样使用会容易形成死循环,建议在文本框后面加一个span标签好写,
不明白仁兄的意思?
#5
三月的雪2011-04-15 13:45
obj.value = "";
obj.focus();
这两句换下顺序,如上。
#6
sea09272011-05-11 15:01
你的事件用错了。应该用onChange 而不是onBlur

onChange是在文本框里的值发生改变后,触发的事件
onBlur是文本框获取焦点事件,只要文本框一获焦点,就弹框,因为文本框里一直是空白的,哈哈。
#7
kongmajian2011-06-19 10:32
程序代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www. <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Untitled Document</title>
        <script type="text/javascript">
            function CheckInput(obj)
            {
                var tempValue = obj.value;
      
                if(!((tempValue == "A") || (tempValue == "B") || (tempValue == "C")))
                {
                    alert("请输入A、B或C!");
                    obj.value = "";
                    obj.focus();
                }
            }      
        </script>
    </head>
    <body>
        <input id="result" type="text" name="text1" size=1 maxlength=1  onchange="CheckInput(this)">
    </body>
</html>
的确,改成onchange后应该就没问题了,不然点击空白的地方还会弹,跳转的时候还会弹次,onBlur是文本框失去焦点事件吧。。。。
1