我的Thymeleaf页面中有几个下拉列表,如下所示:
<select name="institution.serviceDept" th:field="*{serviceDept}">
<option th:each="choice : ${serviceDeptList}"
th:value="${choice.serviceDeptId}"
th:attr="choiceinstitutionId=${choice.serviceDeptId}, institutioninstitutionId=*{serviceDept.serviceDeptId},
showselected=(${choice.serviceDeptId} == *{serviceDept.serviceDeptId})"
th:selected="(${choice.serviceDeptId} == *{serviceDept.serviceDeptId})"
th:readonly="(${choice.serviceDeptId} == *{serviceDept.serviceDeptId})"
th:text="${choice.name}"></option>
</select>
当我查看页面时,列表中的第一个值显示为选中状态,实际上即使未手动选择也会作为选定值提交。除非已经选择,否则我宁愿默认选择任何内容。我删除了&#34;个:选择&#34;这并没有任何区别。
任何人都可以告诉我如何选择任何内容或者可能是默认值,例如&#34;请选择&#34; ?
答案 0 :(得分:1)
在这里发布我的答案,因为其他人没有为我工作(但你的里程我的变化)。显然,您无法在列表中使用null或虚拟对象,或者抛出所有类型的异常。您可以做的是添加另一个空白<option></option>
,如下所示:
<select name="institution.serviceDept" th:field="*{serviceDept}">
<option th:value="0" text="Please Select"></option>
<option th:each="choice : ${serviceDeptList}"
th:value="${choice.serviceDeptId}"
th:attr="choiceinstitutionId=${choice.serviceDeptId}, institutioninstitutionId=*{serviceDept.serviceDeptId},
showselected=(${choice.serviceDeptId} == *{serviceDept.serviceDeptId})"
th:selected="(${choice.serviceDeptId} == *{serviceDept.serviceDeptId})"
th:readonly="(${choice.serviceDeptId} == *{serviceDept.serviceDeptId})"
th:text="${choice.name}"></option>
</select>
请注意虚拟选项标记上缺少th
和th:value
答案 1 :(得分:0)
尝试添加一个空的选定选项,如下所示:
<option disabled="disabled" selected value=" "> -- select an option -- </option>
已停用,因此一旦您选择其他选项,您将无法再将其选中。
答案 2 :(得分:0)
这对我有用:
<option label="-- No Value Selected --" value=""></option>