Как отключить кнопку html с помощью тегов JSTL

Я хочу отключить кнопку HTML в зависимости от значения, присутствующего в компоненте Spring. Я использую свойство JSTL empty, но не повезло.
Вот мой код

   <input type="submit" value="SendEmail" disabled="${empty reportNotificationFbo.providersList}" >  

Здесь reportNotificationFbo — это spring bean, а providersList — это список.

Я хочу отключить кнопку Submit, если providersList пусто.

-Спасибо.


person Ajinkya    schedule 17.05.2011    source источник


Ответы (2)


Состояние кнопки определяется наличием атрибута disabled, а не его значением. Попробуйте следующее:

<input type="submit" value="SendEmail"
    "${(empty reportNotificationFbo.providersList) ? 'disabled' : ''}" >   
person axtavt    schedule 17.05.2011
comment
Спасибо, axtavt :) Все на месте :) Еще раз спасибо :) - person Ajinkya; 17.05.2011
comment
Просто примечание, это не работает для меня, я получаю org.apache.jasper.JasperException: Unterminated &lt;stripes:select tag - person jlewkovich; 19.03.2014
comment
Вы действительно не хотите, чтобы кавычки вокруг этого, не так ли? - person TimK; 23.01.2016
comment
Мне это решение тоже не подходит. Получение ошибки Незавершенный тег [form:input]. - person Adil Aslam Sachwani; 05.11.2020

Если у вас есть атрибут disabled с любым значением, он будет отображаться в браузере как отключенный.

Пытаться

<c:choose>
    <c:when test="${empty reportNotificationFbo.providersList}">
        <input type="submit" value="SendEmail" disabled="disabled" >
    </c:when>
    <c:otherwise>
       <input type="submit" value="SendEmail"  >
    </c:otherwise>
</c:choose> 

Извините, я не проверил этот код

person reevesy    schedule 17.05.2011
comment
Спасибо Ривзи. Ответ выше работает. Попробую и ваш, но сейчас у меня мало времени. Спасибо :) - person Ajinkya; 17.05.2011
comment
Оба метода должны работать. Причина, по которой disabled=false не работает, заключается в том, что атрибут HTML disabled с ЛЮБЫМ значением (включая false) отключит кнопку. Это часть исходной спецификации html, где значение атрибута на самом деле не требуется. Это объясняется здесь стивентон .co.uk/Content/Blog/Date/201104/Blog/ - person reevesy; 17.05.2011
comment
Что делать, если мой ‹/input› не приходит до выбора? Это выдаст ошибку. - person jlewkovich; 19.03.2014
comment
@JL Возможно, вам стоит опубликовать свою разметку в качестве вопроса на S.O. (если вы еще этого не сделали), насколько я вижу, вы используете полоски.... - person reevesy; 20.03.2014
comment
Да, я использую тег <stripes:select>, и кажется, что ни один из этих ответов не работает. Мы решили это, переключив его на <input> - person jlewkovich; 20.03.2014
comment
Хорошо, парень, возможно, все же стоит опубликовать и ответить на свой вопрос, это может помочь кому-то в будущем...... - person reevesy; 20.03.2014