Мои jQuery знания достаточно просты c, и у меня возникли проблемы с достижением того, что я опишу ниже, так что, надеюсь, кто-нибудь сможет помочь.
Я искал похожие вопросы но все найденные мной предложения не достигли того, что мне нужно.
Это для веб-приложения Spring. У меня есть форма с раскрывающимся списком Страна, которая заполняется службой, содержащей список всех стран. Раскрывающийся список привязан к модели, поэтому при загрузке страницы он покажет страну, которую пользователь ранее сохранял в базе данных.
Это релевантная часть моего раскрывающегося списка
<form:select path="model.country" id="country-input" class="form-control greenActiveBorder">
<c:choose>
<c:when test="${empty model.country}">
<form:option value="" selected="selected"><spring:message code="select_label"/></form:option>
</c:when>
<c:otherwise>
<form:option value="${model.country}" selected="selected"></form:option>
</c:otherwise>
</c:choose>
Это прекрасно работает , Когда я меняю страну и выбираю другое значение, это правильно связывается из-за path = "model.country", и я могу работать с новым значением в классе Java.
Однако у меня также есть возможность очистить поля моей формы. При нажатии на эту опцию запускается следующий jQuery:
$('#street-input').val('');
$('#country-input').val('');
Это очищает значения всех полей, включая раскрывающийся список. Однако пустое значение для раскрывающегося списка не привязано к моей модели. Тем не менее, он отлично работает на улице. При отправке формы моя модель будет иметь значение пустой строки для улицы, но страна будет иметь то же самое старое значение.
Я предполагаю, что, хотя я очищаю значение страны, предыдущая опция все еще выбрана, и это то, что связывается.
Я пробовал разные подходы
$('#country-input').prop('selectedIndex', 0);
Это даже не очищает значение.
$("#country-input").val('').change();
Это очищает значение формы, но при отправке модель все равно будет сохранять старое значение.
Есть идеи, как правильно достичь этого?
Спасибо,