[英]Javascript - onblur event create infinite alerts loop in validation
如何使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>
但是為什么只在onblur
事件上這樣做呢? 之所以會發生循環,是因為focus()就像@Viney所說的那樣。
使用onchange
,應用程序將無循環執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.