2011-04-14 234 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