Я имею в <g:select>
один из моих GSPs который выглядит следующим образом:Single выберите <g:select> производит более одного «выбранного» пункта по умолчанию
<g:select id="location" name="criteria.location" from="${example.Location.list()}" optionKey="id" required="" value="1" class="many-to-one"/>
Ожидаемый результат будет что-то вроде этого, не так ли?
Ожидаемый результат:
<select id="location" name="criteria.location" required="" class="many-to-one" >
<option value="1" selected="selected" >1st Location Name</option>
<option value="2" >2nd Location Name</option>
<option value="3" >3rd Location Name</option>
<!-- entries omitted -->
<option value="49" >49th Location Name</option>
<option value="50" >50th Location Name</option>
</select>
Но что же я? Я заканчиваю двумя выбранными товарами. Также выбирается 49-й вариант, и я не могу себе представить, почему! Там нет абсолютно нет упоминания о значении «49» в моем коде ...
Фактический результат:
<select id="location" name="criteria.location" required="" class="many-to-one" >
<option value="1" selected="selected" >1st Location Name</option>
<option value="2" >2nd Location Name</option>
<option value="3" >3rd Location Name</option>
<!-- entries omitted -->
<option value="49" selected="selected" >49th Location Name</option>
<option value="50" >50th Location Name</option>
</select>
Если изменить value
в мой <g:select>
на «3», например, выбирается третий вариант, но по какой-либо причине 49-й элемент все еще выбирается.
Edit: Еще более странно, если бы я изменить value
свойство значения больше 49, то выберите работы и только выбирается п-й вариант!
Обновление: Я разместил ответ, подробно рассказывающий, как я его работаю, но я до сих пор не понимаю оригинального поведения тега <g:select>
.
Есть ли у кого-нибудь идеи относительно того, что здесь происходит? версия
Grails: 2.2.0
Опция 49 выбирается «1», потому что «1» имеет значение ASCII 49 (я просто потратил половину рабочего дня на отслеживание той же ошибки. Arghhhh) – sebnukem