Select 表单选择中Dojo/Dijit和空白选项的问题
我是Dojo的新手,我遇到了以下问题 我有spring roo生成的以下表单选择:Select 表单选择中Dojo/Dijit和空白选项的问题,select,dojo,option,spring-roo,Select,Dojo,Option,Spring Roo,我是Dojo的新手,我遇到了以下问题 我有spring roo生成的以下表单选择: <div id="_f_trc_suivi_domain_Pli_conteneurNum_id"> <label for="_conteneurNum_id">Conteneur Num : </label> <select id="_conteneurNum_id" name="conteneurNum">
<div id="_f_trc_suivi_domain_Pli_conteneurNum_id">
<label for="_conteneurNum_id">Conteneur Num : </label>
<select id="_conteneurNum_id" name="conteneurNum">
<option value="">Tous</option>
<option value="1">951</option>
<option value="2">753</option>
<option value="3">753159</option></select><br />
<script type="text/javascript">
Spring.addDecoration(new Spring.ElementDecoration({
elementId : '_conteneurNum_id',
widgetType : 'dijit.form.FilteringSelect',
widgetAttrs : {
hasDownArrow : true
}
}));
</script>
</div>
内容编号:
图斯
951
753
753159
Spring.add装饰(new Spring.element装饰)({
elementId:“\u contentneurum\u id”,
widgetType:'dijit.form.FilteringSelect',
WidgeAttrs:{
哈斯:对
}
}));
这导致firebug中出现以下情况:
<div wairole="combobox" dojoattachpoint="comboNode"
id="widget__conteneurNum_id"
class="dijit dijitReset dijitInlineTable dijitLeft dijitTextBox dijitComboBox dijitTextBoxError dijitComboBoxError dijitError"
role="combobox" widgetid="_conteneurNum_id"
aria-labelledby="_conteneurNum_id_label" aria-expanded="false">
<div dojoattachevent="onmousedown:_onArrowMouseDown"
wairole="presentation" dojoattachpoint="downArrowNode"
class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer"
role="presentation">
<input type="text" wairole="presentation" readonly="" tabindex="-1"
value="? " class="dijitReset dijitInputField dijitArrowButtonInner"
role="presentation">
</div>
<div class="dijitReset dijitValidationContainer">
<input type="text" wairole="presentation" readonly="" tabindex="-1"
value="? "
class="dijitReset dijitInputField dijitValidationIcon dijitValidationInner"
role="presentation">
</div>
<div class="dijitReset dijitInputField dijitInputContainer">
<input type="text" waistate="haspopup-true,autocomplete-list"
wairole="textbox" dojoattachpoint="textbox,focusNode"
dojoattachevent="onkeypress:_onKeyPress,compositionend"
autocomplete="off" class="dijitReset dijitInputInner"
role="textbox" aria-haspopup="true" aria-autocomplete="list"
id="_conteneurNum_id" tabindex="0" aria-required="true"
aria-invalid="true" value="" aria-owns="_conteneurNum_id_popup"><input
type="hidden" name="conteneurNum" value="">
</div>
</div>
但不幸的是,它总是显示一个“强”>“白色”选项<>强>上面的空白选项,其值是“TUE”。 请参阅以下gif:
我做错了什么?任何线索都欢迎编辑:我确信问题在于:
Tous
尤其是value=”“
部分。我可以将我的问题重新表述并细化如下:如何确保Dojo/Dijit正确处理此问题:value=”“
?只需按预期将0值放在那里即可。我对以下代码没有任何问题:
<div id="_f_trc_suivi_domain_Pli_conteneurNum_id">
<label for="_conteneurNum_id">Conteneur Num : </label>
<select id="_conteneurNum_id" name="conteneurNum">
<option value="0">Tous</option>
<option value="1">951</option>
<option value="2">753</option>
<option value="3">753159</option>
</select><br />
<script type="text/javascript">
Spring.addDecoration(new Spring.ElementDecoration({
elementId : '_conteneurNum_id',
widgetType : 'dijit.form.FilteringSelect',
widgetAttrs : {
hasDownArrow : true
}
}));
</script>
</div>
内容编号:
图斯
951
753
753159
Spring.add装饰(new Spring.element装饰)({
elementId:“\u contentneurum\u id”,
widgetType:'dijit.form.FilteringSelect',
WidgeAttrs:{
哈斯:对
}
}));
在与MyEclipse 2014、Spring 3.1和旧的Dojo/Dijit版本搏斗了几个小时后,我刚刚找到了一个解决办法,我知道这是一个旧版本,但MyEclipse打包了这些旧版本的所有内容,让人抓狂
我尝试了FilteringSelect、使用空值选择、使用值替换html选项,并替换了破坏了项目其余部分的dojo库。因此,如果这对任何人都有帮助,我将在这里发布:
如果希望在select中使用空值的伪提示选项,如“--select item--”,则这种情况很常见。Dojo/dijit版本将MyEclipse打包到spring-js-2.3.1.RELEASE中,使用下拉列表中显示的分隔符将选项替换为空值。在Dojo/Dijit的最后几个版本中,这种行为似乎得到了纠正,正如您在Craig Swing的小提琴中看到的那样
如果绑定的属性不是字符串,则可以将单个espace指定为dummy选项的值,而不是null,因为稍后将在控制器中绑定为null,因此将显示dummy选项。例:
<option selected="selected" value="">Tous</option>
不要忘记在web.xml中覆盖资源Servlet的路径:
<servlet-mapping>
<servlet-name>My Servlet</servlet-name>
<url-pattern>/resources/dijit/form/Select.js</url-pattern>
</servlet-mapping>
我的Servlet
/resources/dijit/form/Select.js
选择DIJIT.St.Stand而不是FieldSelpTI确实考虑了这一点,但我想理解为什么这个问题会发生,以及这个组件是如何工作的,特别是记住,当SELECT中没有空白选项时,SELECT显示得很好。您尝试为第一选项设置一个值吗?另外,为什么不直接在这里设置数据dojo类型呢?苹果橙子梨子你好Unludo,我的选择是由spring用dojo装饰的,我需要第一个选项的空值…还有其他想法吗?@balteo试试这个方法单击第一个选择中的一个选项添加空值
<servlet-mapping>
<servlet-name>My Servlet</servlet-name>
<url-pattern>/resources/dijit/form/Select.js</url-pattern>
</servlet-mapping>