#css #jsp #bootstrap-4 #el
#css #jsp #bootstrap-4 #el
Вопрос:
Я хотел знать, как правильно скрыть div, если не выполнены некоторые условия. Я пытаюсь добавить div, который содержит ошибку входа в систему и будет отображаться только при возникновении ошибки.
<div id= "error" class="alert alert-danger" hidden="hidden" role="alert">
${loginError}
</div>
Я попытался добавить скрипт, но это не сработало.
<script type="text/javascript">
if(null != request.getAttribute("loginError")){
document.getElementById("error").hidden = "";
}
</script>
Ответ №1:
Ключ в том, чтобы понять, где и когда какой код выполняется — JSP на сервере, когда страница запрашивается и отображается (т. Е. до отправки ответа в браузер), и Javascript в браузере, после того, как браузер получит уже сгенерированный ответ. Таким образом, в JS нет request
переменной, поэтому
if(null != request.getAttribute("loginError")){
не имеет смысла. Я бы предложил следующее:
<div id= "error" class="alert alert-danger" ${ empty loginError ? '' : 'hidden'} role="alert">
( hidden
Атрибуту не обязательно иметь значение, если оно присутствует, элемент будет скрыт — независимо от того, какое у него значение.)
Ответ №2:
Вам нужно изменить скрытое значение на false. Пустая строка в любом случае добавляет атрибут, скрытый для элемента. Итак, чтобы изменить состояние скрытости html-элемента, вы должны использовать логические значения. document.getElementById("error").hidden = false;