Select 表单选择中Dojo/Dijit和空白选项的问题

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">

我是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">
            <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>