Javascript-onblur事件在验证中创建无限警报循环
如何使onblur每次验证显示1个警报?它始终创建无限循环。我知道我可以使用onchange,但我想用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
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(),循环可能重复代码>