2013-07-08 205 views
0

我已經在Grails中構建了一個表單。我已使用動態創建Html <input>標記的g:submitToRemote按鈕。我想對其應用dojo樣式,就像我的表單中的所有其他元素一樣,但這種樣式不適用。你能幫我解決問題嗎?CSS dojo樣式不適用於按鈕

<input onclick="createLoader(); dojoType="dijit.form.Button" try{//some Ajax calls};return false" type="button" value="Search"> 

回答

1

有你需要檢查幾件事情:

  1. 確定按鈕被解析?查看HTML源代碼並驗證按鈕的HTML代碼是否仍與您提供的代碼相同。當Dojo解析HTML代碼時,它通常會將HTML代碼更改爲更復雜的代碼。如果你沒有那麼複雜的代碼,你的小部件不會被Dojo拾取。
  2. 你輸入了正確的CSS文件嗎?您需要確保您導入了正確的CSS文件,例如claro.css
  3. 是否有任何父元素具有主題類名稱?如果您使用claro主題(例如),則需要確保您的類名claro處於某個地方,通常位於您的body標籤中。

編輯: 更多的事情來檢查:

你有你的require()dijit/form/Button?假設你正在使用的Dojo 1.6(因爲你正在使用的舊dojoType),你需要的代碼是:

dojo.require("dijit.form.Button"); 

是您的按鈕加載異步或不?如果它是異步加載的,則在加載頁面時不會分析您的節點。這意味着你必須通過在<div>包裝您的按鈕手動異步並手動解析DIV,例如:

<div id="toParse"> 
    <input onclick="createLoader(); dojoType="dijit.form.Button" try{//some Ajax calls};return false" type="button" value="Search"> 
</div> 

而且在JavaScript:

dojo.parser.parse("toParse"); 
+0

1.我的代碼不會被解析。沒有任何Dojo代碼存在。 2. Claro.css在那裏。所有其他組件正在工作。 – Jacob

+0

然後你必須找到你的Dojo代碼沒有被編譯的原因。 'require()'塊中的'dijit/form/Button'?我對Grails不是很熟悉,但加載的內容是異步的? – g00glen00b

+0

這是禮物:dojo.require('dijit.form.Button'); – Jacob