Dojo / Dijit / SpringJS忽略了Selected属性

时间:2012-07-31 08:02:05

标签: dojo spring-js

我有一个选择的源代码:

<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”。< / p>

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

控制台中是否有错误?

我有一个小提琴,可以完全符合您的代码:

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

答案 1 :(得分:1)

我刚刚在MyEclipse 2014,Spring 3.1和旧的Dojo / Dijit版本上进行了几个小时的摔跤后找到了一个解决方法,我知道这已经过时了,但MyEclipse会打包这些旧版本的所有东西。

我尝试了FilteringSelect,选择了空值,带有值的html选项,以及替换了混乱了项目其余部分的dojo库。所以我会在这里发布,如果它可以帮助任何人:

这种情况很常见,如果你想在你的选择中使用虚拟提示选项,例如' - 选择项 - - ,使用空值。使用MyEclipse打包到Spring-js-2.3.1.RELEASE的Dojo / dijit版本,用下拉列表中显示的分隔符替换带有空值的选项。 在几个最后版本的Dojo / Dijit中,这种行为似乎得到了纠正,正如你在Craig Swing的小提琴中看到的那样。

如果绑定的属性不是字符串,则可以将单个espace指定为dummy选项的值而不是null,因为稍后将在控制器中绑定为null,因此将显示dummy选项。例如:

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

但是如果属性是String,那么您将在控制器的属性中找到一个不希望的空白区域。

所以我最后选择直接修改Select.js

将它放在webapps / resources / dijit / form / 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;
/*
}
*/

并且不要忘记在web.xml中覆盖Resource Servlet的这个路径:

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