2016-04-17 2 views
1
Vorwählen

Ich habe mehr Dropdown-Listen in meinen Thymeleaf Seiten, die aussehen wie:Thymian Blatt Drop-Down-Liste ohne

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

Wenn ich die Seite, der erste Wert in der Liste Ansicht wird ausgewählt, und in der Tat ist als ausgewählter Wert übergeben, auch wenn er nicht manuell ausgewählt wurde. Ich würde vorziehen, dass standardmäßig nichts ausgewählt wird, es sei denn, es wurde bereits ausgewählt. Ich habe das "th: selected" entfernt und das macht keinen Unterschied.

Kann mir jemand sagen, wie man entweder nichts ausgewählt hat oder vielleicht einen Standardwert wie "Bitte auswählen"?

Antwort

0

Versuchen eine leere ausgewählte Option wie folgt hinzuzufügen:

<option disabled="disabled" selected value=" "> -- select an option -- </option> 

sie deaktiviert ist, so wird es nicht möglich sein, es wieder zu wählen, wenn Sie eine andere Option auswählen.

+0

ich die „Option deaktiviert gewählte Wert“ zu meinen Option Tag hinzugefügt und Dies führt zu einem Fehler. Ich habe versucht, Ihr Beispiel auf der Thymeleaf-Dokumentation nachzuschlagen, konnte aber keine Referenz finden. Könnten Sie bitte Ihre Antwort erweitern? – sonoerin

+0

Vielleicht versuchen Sie 'Wert =" "'. Welchen Fehler bekommst du? –

+0

Geändert zu

0

Hier meine Antwort schreiben, da die anderen nicht für mich arbeiten (aber Ihre Laufleistung variiert). Anscheinend können Sie kein Null- oder Dummy-Objekt in Ihrer Liste verwenden oder alle Arten von Ausnahmen werden ausgelöst. Was Sie tun können, ist eine weitere leere <option></option> wie folgt ergänzt:

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

Hinweis der Mangel an th auf dem Dummy-Option-Tag und ein th:value

+0

Ich musste den Text implizit einfügen, also '', um die Option zu erhalten, sobald sie einen Wert hatte und Sie sie "entfernen" wollten. – lechonex

Verwandte Themen