У меня есть форма, в которой введенные данные сопоставляются с правильной переменной с помощью th:field
. Но когда страница загружается, я хочу, чтобы поле ввода показывало значение по умолчанию. Таким образом, когда пользователь не вводит никаких данных, значение по умолчанию сопоставляется с переменной.
th:field
переопределяет th:value
, поэтому я добавил:
th:attr="value=${field.placeholder}"
, о котором я узнал в другой теме (ссылка в комментарии), но, похоже, это не работает. Когда я проверяю элемент, он показывает значение как: value=""
.
Я знаю, что field.placeholder не пуст, потому что th:placeholder="${field.placeholder}"
действительно показывает значение.
<form th:action="@{/generateData}" th:object="${stepObject}" method="post" class="form-group">
<div th:each="field, iterStat : ${stepEntry.value}">
<label th:text="${field.name}"></label><input type="hidden" th:field="*{name}" th:attr="value=${field.name}"/>
<input th:type="${field.type}" class="form-control" th:maxLength="${field.length}"
th:field="*{value}" th:attr="value=${field.placeholder}" th:placeholder="${field.placeholder}"/>
</div>
<button type="submit" class="btn btn-primary" id="generateButton">Generate away!</button>
</form>
Так что здесь, в скрытом вводе, оно должно иметь значение $ {field.name}, но значение равно "".
в другом входе он должен иметь значение $ {field.placeholder}, но это значение также равно "".
Любые предложения о том, почему это так и как я мог заставить это работать?
Когда я ввожу данные в поля ввода, они сопоставляются с переменной значения stepObject. Но важно, чтобы пользователь также мог просто нажать кнопку, ничего не вводя.
Заранее спасибо!