Выбранный атрибут игнорируется Dojo/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>
Которые отображаются следующим образом:
Кажется, что выбранный атрибут игнорируется Dojo/Dijit/SpringJS (обратите внимание, что пользователю сначала предоставляется белая метка вместо "Tous").
Может кто-нибудь, пожалуйста, помогите?
2 ответа
Есть ли ошибки в консоли?
У меня есть скрипка, которая делает именно то, что вы хотите с вашим кодом:
Я только что нашел обходной путь после нескольких часов борьбы с MyEclipse 2014, Spring 3.1 и старыми версиями Dojo/Dijit, я знаю, что это старая версия, но MyEclipse упаковывает все эти старые версии.
Я попробовал FilteringSelect, Select с нулевым значением, html option со значением и заменил библиотеки dojo, которые испортили остальную часть проекта. Поэтому я опубликую это здесь, если это может кому-нибудь помочь:
Этот случай является распространенным, если вы хотите использовать фиктивную опцию подсказки, например, "Выбрать элемент" с нулевым значением. Версия Dojo / dijit, упакованная с MyEclipse в spring-js-2.3.1.RELEASE, заменяет опцию нулевыми значениями с разделителями, показанными в выпадающем списке. В нескольких последних версиях Dojo/Dijit это поведение, кажется, исправлено, как вы можете видеть в скрипке Craig Swing.
Если свойство, которое вы связываете, не является строкой, вы можете назначить одну пробел в качестве значения параметра-пустышки вместо нуля, потому что позже в контроллере будет привязан как ноль, поэтому будет отображаться пустая опция. Пример:
<option selected="selected" value="">Tous</option>
Но если свойство является строкой, то вы найдете нежелательное пустое пространство в свойстве вашего контроллера.
Поэтому я наконец решил напрямую изменить 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:
<servlet-mapping>
<servlet-name>My Servlet</servlet-name>
<url-pattern>/resources/dijit/form/Select.js</url-pattern>
</servlet-mapping>