最近我正在維護一個遺留項目。我在頁面中發現了一個javascript死循環問題。演示代碼如下。當用戶點擊第一個輸入框並鍵入3,然後直接點擊第二個輸入框時,就會出現死循環。現在我的問題是解決或預防這類問題的最佳方法是什麼?萬分感謝。解決這種JavaScript死循環的最佳方法是什麼?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
</head>
<body>
<input type="text" name="a" id="a" value="" />
<input type="text" name="b" id="b" value="" />
<script type="text/javascript" charset="utf-8">
var a = document.getElementById("a");
a.onblur = function(){
if(a.value.length === 1){
alert("aaa");
a.focus();
a.select();
return false;
}
}
var b = document.getElementById("b");
b.onblur = function(){
if(b.value < a.value){
alert("bbb");
b.focus();
b.select();
return false;
}
}
</script>
</body>
</html>
很難說這段代碼應該做什麼 - 看起來你試圖讓'a'包含多於一個字符而'b'包含大於'a'中的內容的東西。你對於哪一種更大也不是很確切。 'a'=='aa'和'b'='ab'通過測試 – meouw 2010-02-09 06:33:41
避免調用焦點() – Francisco 2010-02-09 07:09:34