2011-04-14 103 views
0

這是我的表單樣本。當頁面加載的焦點必須在'fbox'上,但它的工作量並不明白爲什麼。表單包含niceditor但我不認爲這是問題爲什麼onload焦點在這個腳本上不起作用?

<html> 
<head></head> 
<body onload="document.form.fbox.focus();"> 
<body> 
<form method='post' action='' name='form' > 
Headline <input name='fbox' type='text' class='form' id='box' autocomplete='off' size='80'><br> 
Your text</font><br><script type="text/javascript" src="nicEdit.js"></script><script type="text/javascript">bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });</script> 
<textarea name="description" style="width: 100%; height:200px;"></textarea></p>  
<p><select name='catg' > 
<option value='' selected >Select category</option> 
</select> 
<input type="submit" id='button' name="Submit" value="Submit" class="button"></form> 
</body></html> 

感謝

+1

它在鉻工作,順便說一句,你知道你必須接受答案?請參閱http://stackoverflow.com/faq#howtoask – Trufa 2011-04-14 14:51:20

+0

Give document.forms [0] .fbox.focus();試試 – used2could 2011-04-14 14:51:29

回答

1

你有二體標籤。我建議擺脫其中一個,看看是否有幫助。

在代碼中間還有一個流浪的關閉</font>標籤。許多人試圖安排他們的標記,以便閱讀和查看文檔的結構。你可能想要探索這種做法。

另一種可能性是您的「nicEdit」插件未執行「.focus()」調用。嘗試一下,看看焦點是否有效(作爲一個實驗)。如果這是發生,那麼你可以做你的「焦點()」調用nicEdit代碼完成後:

bkLib.onDomLoaded(function() { 
    nicEditors.allTextAreas(); 
    document.form.fbox.focus(); 
}); 

(這是在現有的<script>的代碼塊的適應。)

+0

是的編輯器正在取消它 – user666605 2011-04-14 15:00:24

+0

好的我已經擴展了答案。 – Pointy 2011-04-14 15:02:48

0

你有兩個身體元素。這是行不通的。

腳本從上到下運行,因此您在頁面的其餘部分呈現之前觸發「onload」。當事件發生時,您試圖關注的元素可能不在那裏。

有很多方法可以解決這個問題。 jQuery有一個方便的方法,等待DOM準備就緒。

一個簡單的方法就是簡單地在腳本塊中從頁面的底部運行腳本。

<script type="text/javascript"> 
document.form.fbox.focus() 
</script> 
+0

我可能是錯的,但不是隻有在DOM準備好和所有圖像(等)加載後纔會觸發「加載」事件? – Pointy 2011-04-14 15:00:19