2014-09-20 26 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小部件。

相關問題