2011-02-15 45 views
1

我在Dojo表單中包含了一個Dojo星級評定小部件(dojox.form.Rating),但提交時未顯示。dojox.form.Rating未出現在發佈數據中

<div dojoType="dojox.form.Rating" numStars="5" id="field_3177" value="3"></div> 

該文檔沒有提到添加名稱屬性,但即使我添加一個,它也沒有幫助。

<div dojoType="dojox.form.Rating" name="field_3177" numStars="5" id="field_3177" value="3"></div> 

檢查在Firebug呈現的HTML,似乎隱藏的輸入字段沒有name屬性 - 這可以解釋爲什麼它不會在發佈的數據顯示。

<input type="hidden" dojoattachpoint="focusNode" value="3" id="field_3177" tabindex="0"> 

提交前我應該做些什麼?

+0

我解決了這個問題,通過猴子修補隱藏的輸入來獲得name屬性。但當然,這不可能是正確的做法。它可以? – voidstate 2011-02-15 12:54:30

+0

這是猴子補丁固定它:函數(ID) \t \t { \t \t \t \t \t \t \t \t \t dojo.attr(ID, '姓名',ID); \t \t} – voidstate 2011-02-25 11:53:41

回答

2

你只需要一個名稱添加到窗口小部件,即

<div dojoType="dojox.form.Rating" numStars="5" id="field_3177" name="field_3177" value="3"></div> 

這是什麼特別的道場。所有輸入元素必須有一個名稱才能提交回服務器,請參閱http://www.w3schools.com/tags/att_input_name.asp

更新: 對不起,您沒有看到您已經嘗試添加名稱參數。我認爲這是一個表單或(更可能)評級小部件中的錯誤。如果您使用dijit.form.Form.getValues()通過XHR提交表單,那麼您將得到包含評級小部件 - 如果您有名稱。但是,如果你使用本地表單提交,那麼你不會。

我在http://telliott.net/dojoExamples/dojo-ratingInFormExample.html創建了一個測試用例。您可以通過快速迭代getValues()返回的值並自己構建查詢字符串來獲得此功能,以用於非XHR表單提交。不理想。我懷疑應該更新評級的模板,以將名稱屬性放到輸入節點上,而不是頂級節點上。

0

愚蠢的問題:

有你添加dojo.require( 「dojox.form.Rating」);你的代碼?

希望它可以幫助你。

//丹尼爾