2014-09-20 28 views
1

我需要设置焦点来输入,通过使用小部件dijit。我现在不知道如何在form._FormWidget中要求属性focus()。(Dojo)如何通过使用widgets dijit将焦点集中到同一个输入?

<script type="text/javascript" 
src="http://o.aolcdn.com/dojo/1.6/dojo/dojo.xd.js" djConfig="parseOnLoad: true" > 
</script> 
<script> 
dojo.require("dojo.parser"); 
dojo.require("dijit.form._FormWidget"); 
dojo.require("dijit.form.Form");  

var ws = new dijit.form._FormWidget(); 
ws.focus(dijit.byId("company")); 
</script> 

<input id="company" type="text" name="company" /> 

这不行!请帮助。

如果使用document.getElementById('company')。focus();我hav错误Uncaught TypeError:无法读取null的属性'焦点'。

+0

'document.getElementById('company')'只会在文档加载后才起作用。您需要使用'dojoi/ready'模块,例如'require([“dojo/ready”],function(ready){document.getElementById('company')。focus()});});'。有关详细信息,请参阅[此处](http://dojotoolkit.org/reference-guide/1.10/dojo/ready.html#id4)。 – frank 2014-09-21 06:52:00

回答

1

我不是100%确定我明白你在问什么,但是如果你只是想集中一个简单的原生HTML输入,直接调用focus,不需要Dojo或Dijit。

document.getElementById('company').focus(); 

dijit表单控件往往有自己的focus方法将做同样的事情为自己的投入。您不能在Dijit小部件上调用focus,以便聚焦除小部件外的其他内容。

同时,dijit.byId('company')不会返回页面上的任何内容,因为company输入是而不是 Dijit小部件。

相关问题