Как показать первое значение выпадающего списка всегда на JSP в первый раз при загрузке страницы?

0

Я работаю над страницей JSP, и мне нужно всегда показывать выбранное значение раскрывающегося списка на этой странице JSP. Ниже мой пример -

<p style="font-weight: bold">Limit</p>
<select id="limit" name="limit">
    <option value="10">10</option>
    <option value="20">20</option>
    <option value="50">50</option>
    <option value="100">100</option>
</select>

В первый раз, когда моя страница загружается, я хотел показать 10 значений, выбранных из выпадающего списка выше. Теперь, если я выберу 20 из выпадающего списка выше и отправлю форму, мне нужно показать 20 в этом выпадающем списке, сохраняя состояние выпадающего списка всегда, поэтому для этого я использовал ниже код -

<%
String limit = request.getParameter("limit");
%>
<script>
document.getElementById("limit").value = '<% out.print(limit); %>';
</script>

Но так или иначе, всякий раз, когда я загружаю свою страницу в первый раз, я всегда вижу пустое поле infront в раскрывающемся списке Limit а затем, если я выберу 20 из этого раскрывающегося списка и снова отправлю форму, тогда я могу увидеть 20 selected в этом выпадающем списке и если я выберу 50 и отправлю форму снова, то опять же, я также могу увидеть 50 выбранных в этом выпадающем списке.

Единственная проблема в том, что когда я загружаю страницу, она всегда показывает пустое поле в качестве выбранного значения в раскрывающемся списке, который не является тем, что я хочу, я хочу автоматически выбрать 10 автоматически всякий раз, когда страница загружается в первый раз,

Теги:
jsp
drop-down-menu

4 ответа

1
Лучший ответ

У вас нет "заданного по умолчанию" назначения в вашем коде, поэтому присваивание значения назначает значение limit, которое, по-видимому, является нулевым при первой загрузке страницы, в раскрывающемся списке. Похоже, это приводит к пустой опции.

У вас есть два варианта. Первое: если одно из существующих значений должно быть по умолчанию, назначьте его для limit если для него нет значения:

<%
String limit = request.getParameter("limit");
limit = (limit == null) ? DEFAULT_VALUE : limit;
%>

В качестве альтернативы, если одно из существующих значений не подходит по умолчанию, вы должны указать пустую альтернативу в списке опций:

<select id="limit" name="limit">
    <option value="">-- SELECT ONE --</option>
    <option value="10">10</option>
    <option value="20">20</option>
    <option value="50">50</option>
    <option value="100">100</option>
</select>

Надеюсь это поможет.

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: путем интерполяции значения limit на вашу страницу вы нарушаете основное правило безопасности в Интернете: никогда не эхо вводите пользователя на страницу, не открывая ее. Подумайте, что произойдет, если включить тег script как значение limit...

1

Использование javascript - это круто, но вы можете добиться выбора с помощью HTML-функций, посмотрите описание <option selected...> на http://www.w3schools.com/tags/tag_option.asp

Поэтому ваш JSP можно переписать:

<select id="limit" name="limit">
<option value="10" selected>10</option>
1

Вы можете добавить условие вокруг своего <script>:

<% if (limit != null) { %>
...
<% } %>

Или вы можете использовать jquery (это почти всегда хороший вариант с javascript), его метод выбора <option> не даст этого эффекта.

1

На первой загрузке страницы нет набора параметров запроса. Простым решением может быть:

<%
String limit = request.getParameter("limit");
if (limit == null) {
    limit = "10";
}
%>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню