2012-08-11 62 views
0

未定義我嘗試下面的代碼在JavaScript中設置的重點放在第一個可編輯字段在我選擇的形式:元素的JavaScript

function setFocus(id) { 
    var currentDialog = document.forms[id]; 

    for(i = 0; i < currentDialog.elements.length; i++) { 
     if (!currentDialog.elements[i].disabled) { 
      currentDialog.elements[i].focus(); 
      i = currentDialog.elements.length; 
     } 
    } 
} 

它找到的形式,但元素似乎未定義,所以焦點沒有設置。奇怪的是我甚至沒有錯誤。在Firbug中,它向我展示了元素已滿,但訪問財產不起作用。

我相信這是在我的代碼中的一個小的討厭的錯誤,但我找不到它。有沒有人有想法?

+1

你能否把一個http://jsfiddle.net/例子並指定要關注哪些領域?另外作爲一個附註,您可以使用命令'break'來隨時跳出for循環。 – JamesSwift 2012-08-11 09:04:48

+0

感謝您的回答以及「休息時間」的有用提示。我發現我在下一個答案中會解釋兩個錯誤,因爲那是它的一部分。 – parascus 2012-08-11 09:41:57

回答

1
for (var i = 0; i < currentDialog.elements.length; i++) 

,而不是for (i = 0; i < currentDialog.elements.length; i++)

我認爲這是錯誤

+1

在本地聲明變量顯然更好,但循環對全局變量也能很好地工作。 – Guffa 2012-08-11 09:17:03

+1

謝謝你的回答,這是答案的第一部分。另一個隱藏在表單中。表單中的第一個字段爲隱藏類型,未被禁用。所以if塊被執行,並且循環以嘗試聚焦隱藏域結束。有時我感覺我的失明混合。 – parascus 2012-08-11 09:44:48