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

#spring #jstl

#spring #jstl

Вопрос:

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

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

Вот reportNotificationFbo компонент spring и providersList это список.

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

-Спасибо.

Ответ №1:

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

 <input type="submit" value="SendEmail"
    "${(empty reportNotificationFbo.providersList) ? 'disabled' : ''}" >   
  

Комментарии:

1. Спасибо axtavt 🙂 Все встало на свои места 🙂 Еще раз спасибо 🙂

2. Просто примечание, у меня это не работает, я получаю org.apache.jasper.JasperException: Unterminated amp;<stripes:select tag

3. Вы же не хотите, чтобы это было заключено в кавычки, не так ли?

4. У меня это решение тоже не работает. Получение тега с ошибкой Unterminated [<form:input].

Ответ №2:

Если у вас есть 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> 
  

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

Комментарии:

1. Спасибо Ривзи. Приведенный выше ответ работает. Попробую и ваш, но сейчас у меня заканчивается время. Спасибо 🙂

2. Оба метода должны работать. Причина, по которой disabled=»false» не работает, заключается в том, что атрибут HTML disabled с ЛЮБЫМ значением (включая false) сделает кнопку отключенной. Это часть исходной спецификации html, где значение атрибута фактически не требуется. Это объясняется здесь stevefenton.co.uk/Content/Blog/Date/201104/Blog /…

3. Что, если мой </input> не появится до тех пор, пока не будет выбрано? Это выдаст ошибку.

4. @JL Возможно, вам стоит опубликовать свою разметку в качестве вопроса на S.O. (если вы еще этого не сделали), из того, что я вижу, вы используете stripes….

5. Да, я использую <stripes:select> тег, и, похоже, ни один из этих ответов не работает. Мы решили проблему, переключив ее на <input>