У меня проблема с required = true проверка, которая применяется к отключенным полям.
У меня есть a4j: commandButton и два раскрывающихся списка, содержащие список состояний и список стран внутри формы. Оба раскрывающихся списка имеют обязательную проверку "true". раскрывающийся список состояний включен и раскрывающийся список стран отключен по умолчанию с помощью атрибута тега disabled = "true", как показано ниже:
<h:selectOneMenu value="#{states}" required="true">
<f:selectItems>
</h:selectOneMenu>
и
<h:selectOneMenu value="#{countries}" disabled="true" required="true">
<f:selectItems>
</h:selectOneMenu>
Сценарий # 1: нажмите кнопку a4j: commandButton, не выбирая ничего в раскрывающемся списке состояний.
результат: требуемая ошибка проверки поля для ожидаемого раскрывающегося списка состояний
Теперь при нажатии переключателя (вне формы) раскрывающийся список состояний отключается, а раскрывающийся список стран включается с помощью jquery / javascript, как показано ниже:
$j('#stateDropdown').attr('disabled', 'disabled');
$j('#countryDropdown').removeAttr('disabled');
Сценарий № 2: щелкните по кнопке a4j: commandButton, не выбирая ничего в раскрывающемся списке стран.
результат: обязательная ошибка проверки поля для раскрывающихся списков как для штата, так и для страны. Однако ожидалась только ошибка проверки для выпадающего списка стран.
HTML-код, сгенерированный тегом <h:selectOneMenu>
во время выполнения:
для раскрывающегося списка, отключенного с помощью тега jsf attibute: <select disabled="disabled">...</select>
для раскрывающегося списка, отключенного с помощью jquery: <select disabled="">...</select>
Кто-нибудь знает, почему jsf проверяет поля, отключенные jquery?