Как получить как значение, так и текст из html select с помощью тимелеафа

Учитывая следующий POJO, который имеет только два поля:

Сущность:

  • id
  • имя

У меня есть форма со следующим выбором:

<select required="required" name="name" id="myId">
    <option th:disabled="disabled" selected="true" value="">Choose Value</option>
    <option th:each="element : ${elements}"
            th:value="${element.id}"
            th:text="${element.name}">
    </option>
</select>

Я пытаюсь заполнить поля сущности, чтобы поле id заполнялось через th: value (которое было бы значением selected element.id), а поле name заполнялось через th: text (которое было бы значением выбранного элемента. имя).

Насколько я понимаю (и чего я добился), я могу заполнить только одно поле, используя тег выбора html (тот, который я установил в теге выбора имени). Любая идея о том, как я могу получить значения th: text и th: value, отображаемые в моем объекте с помощью тимелеафа?


person Claps    schedule 01.02.2019    source источник


Ответы (2)


Это можно сделать несколькими способами:

1.) После получения value на вашем контроллере вы всегда можете perform a select query from your Database based on the value received on your controller получить значение текстового значения.

2.) Вы можете использовать элемент hidden html вместе с вашим html-option, а затем использовать javascript для отправки формы и получения обоих значений.

person Sumit    schedule 01.02.2019

Что касается стандартных процедур, вы не можете получить оба значения одновременно. Однако вы можете отправить поле значения как объединенную версию обоих значений. Вы можете добиться этого следующим образом:

<option th:each="element : ${elements}"
        th:value="${element.id} + '~' + ${element.name}"
        th:text="${element.name}">
</option>
person Ahmet    schedule 01.02.2019