Javascript-onblur事件在验证中创建无限警报循环

Javascript-onblur事件在验证中创建无限警报循环,javascript,html,Javascript,Html,如何使onblur每次验证显示1个警报?它始终创建无限循环。我知道我可以使用onchange,但我想用onblur事件来实现这一点。我听说过类似(this.id)的方法,但我不知道如何在代码中实现它。我也听说过旗子,但我不知道旗子是做什么的,而且我也不知道如何将它们放在我的代码中 <form> <input type="text" id="liczba1" /><br/> <input type="text" id="li

如何使onblur每次验证显示1个警报?它始终创建无限循环。我知道我可以使用onchange,但我想用onblur事件来实现这一点。我听说过类似(
this.id
)的方法,但我不知道如何在代码中实现它。我也听说过旗子,但我不知道旗子是做什么的,而且我也不知道如何将它们放在我的代码中

<form>
        <input type="text" id="liczba1" /><br/>
        <input type="text" id="liczba2" /><br/>
        <input type="text" id="liczba3" />
    </form>
        <input type="submit" id="button" value="Prześlij" onclick="SprawdzWieksze()"/>
    <div id="wynik"></div>
    <script>
    var a = document.getElementById("liczba1");
    var b = document.getElementById("liczba2");
    var c = document.getElementById("liczba3");

        function Waliduja()
        {
            if(isNaN(a.value))
            {
                alert("Nie może być literą!");
                document.getElementById("liczba1").focus();
            }

            else
            {
                return false;
            }
        }

         function Walidujb()
        {
            if(isNaN(b.value))
            {
                alert("Nie może być literą!");
                document.getElementById("liczba2").focus();
            }

            else
            {
                return false;
            }
        }

         function Walidujc()
        {
            if(isNaN(c.value))
            {
                alert("Nie może być literą!");
                document.getElementById("liczba3").focus();
            }

            else
            {
                return false;
            }
        }

        function SprawdzWieksze()
        {
                var a = Number(document.getElementById("liczba1").value);
        var b = Number(document.getElementById("liczba2").value);
        var c = Number(document.getElementById("liczba3").value);

            if(a > b && a > c)
            {
                document.getElementById("wynik").innerHTML = "Największa liczba to: "+a;
            }

            if(b > a && b > c)
            {
                document.getElementById("wynik").innerHTML = "Największa liczba to: "+b;
            }

            if(c > b && c > a)
            {
                document.getElementById("wynik").innerHTML = "Największa liczba to: "+c;
            }
        }

    a.onblur = Waliduja;
    b.onblur = Walidujb;
    c.onblur = Walidujc;

    </script>



var a=document.getElementById(“liczba1”); var b=document.getElementById(“liczba2”); var c=document.getElementById(“liczba3”); 函数Waliduja() { 如果(isNaN(a.值)) { 警惕(“Nie może byćlą!”); document.getElementById(“liczba1”).focus(); } 其他的 { 返回false; } } 函数Walidujb() { 如果(isNaN(b值)) { 警惕(“Nie może byćlą!”); document.getElementById(“liczba2”).focus(); } 其他的 { 返回false; } } 函数Walidujc() { 如果(isNaN(c值)) { 警惕(“Nie może byćlą!”); document.getElementById(“liczba3”).focus(); } 其他的 { 返回false; } } 函数sprawdzwieksz() { var a=编号(document.getElementById(“liczba1”).value); var b=编号(document.getElementById(“liczba2”).value); var c=编号(document.getElementById(“liczba3”).value); 如果(a>b&&a>c) { document.getElementById(“wynik”).innerHTML=“Największa liczba to:”+a; } 如果(b>a&&b>c) { document.getElementById(“wynik”).innerHTML=“Największa liczba to:”+b; } 如果(c>b&&c>a) { document.getElementById(“wynik”).innerHTML=“Największa liczba to:”+c; } } a、 onblur=Waliduja; b、 onblur=Walidujb; c、 onblur=Walidujc;
但为什么只在
onblur
事件上执行此操作? 循环发生的原因是focus(),如@Viney所说


使用
onchange
,应用程序在没有循环的情况下执行

由于您正在手动聚焦
document.getElementById().focus(),循环可能重复