2012-07-31 26 views
0

我有一個選擇下面的源代碼:當中去渲染爲通過道場/ Dijit的/ SpringJS忽略選擇的屬性

<select id="_conteneurNum_id" name="conteneurNum" data-dojo-type="dijit.form.FilteringSelect"> 
<option selected="selected" value="">Tous</option> 
<option value="1">951</option> 
<option value="2">753</option> 
<option value="3">753159</option> 
</select> 

如下:

rendering of form field

看來,選擇Dojo/Dijit/SpringJS忽略了屬性(注意用戶首先使用白色標籤而不是「Tous」

任何人都可以請幫忙嗎?

回答

1

控制檯中是否有錯誤?

我有不正是你想要你的代碼是什麼小提琴:

http://jsfiddle.net/cswing/eJP3U/

+0

感謝您的這個小提琴。我使用了與Spring roo 1.2.2捆綁在一起的dojo版本。我不確定它是最新版本的dojo/dijit ... – balteo 2012-07-31 11:35:50

+0

更何況,Spring-JS似乎妨礙了我的dojo腳本... – balteo 2012-07-31 11:36:56

1

我只是發現了一些時間後一種解決方法與MyEclipse的2014摔跤,春季3.1老道場/ Dijit的版本,我知道這是舊的,但MyEclipse包裝這些舊版本的一切。

我試過FilteringSelect,選擇空值,帶有值的html選項,並且替換了干擾項目其餘部分的dojo庫。所以我會在這裏發佈這個如果它可以幫助任何人:

這種情況是常見的,如果你想在你的選擇虛擬提示選項,如' - 選擇項目 - '與空值。 Dojo/dijit版本與MyEclipse打包到spring-js-2.3.1.RELEASE中,用下拉列表中顯示的分隔符替換空值。 在Dojo/Dijit的最後幾個版本中,這種行爲似乎可以被糾正,正如你可以在Craig Swing的小提琴中看到的那樣。

如果你綁定的屬性不是一個字符串,你可以指定一個espace作爲dummy選項的值而不是null,因爲稍後會在控制器中綁定爲null,所以將顯示虛擬選項。例如:

<option selected="selected" value="">Tous</option> 

但是,如果屬性是一個字符串,這樣你將與你的控制器該財產的unwished空白找到。

所以我最終選擇直接修改Select.js

其放置在web應用/資源/的dijit /表格/ Select.js 評論你的項目這段臺詞:

/* 
if(!_1.value){ 
return new dijit.MenuSeparator(); 
}else{ 
*/ 
var _2=dojo.hitch(this,"_setValueAttr",_1); 
var _3=new dijit.MenuItem({option:_1,label:_1.label,onClick:_2,disabled:_1.disabled||false}); 
dijit.setWaiRole(_3.focusNode,"listitem"); 
return _3; 
/* 
} 
*/ 

和Don」 t忘記覆蓋此資源Servlet在web.xml中的路徑:

<servlet-mapping> 
    <servlet-name>My Servlet</servlet-name> 
    <url-pattern>/resources/dijit/form/Select.js</url-pattern> 
</servlet-mapping>