2012-06-27 4 views
0

У меня есть форма JSF, в которой у меня есть текстовое поле и несколько кнопок. Для текстовой области я делаю проверку с помощью F: валидаторОграничить f: валидатор только на отдельной кнопке отправки

<f:validator validatorId="myValidator" /> 
<a4j:support event="onsubmit" ajaxSingle="true" process="textarea1" /> 

Валидатор работает, как ожидалось. Теперь у меня есть несколько кнопок отправки на странице, где я хочу, чтобы проверка выполнялась только на определенной кнопке, и валидатор должен игнорироваться на остальных кнопках.

Есть ли способ ограничить валидатор только для отдельной кнопки отправки. Благодарю.

ответ

2

Я предполагаю, что вы хотите передать значение textarea на сервер при нажатии на другие кнопки тоже (так нет смысла играть с атрибутом process)

Как насчет добавления immediate="true" к другим кнопкам?

Таким образом, они будут пропускать проверку, а кнопку отправки без immediate="true" будет делать проверку, как и ожидалось

Или

Там, кажется, еще один обходной путь в этой статье JSF 2 - Conditionally Skip Validation

Что-то вроде

<h:commandButton action="#{bean.someMethod"} value="Submit2"> 
    <f:param name="skipValidation" value="true"/> 
</h:commandButton> 

и внутри метода validate или проверить на skipValidation attirbute (подробнее см. в статье ...)

2

Вы можете использовать атрибут disabled.

<f:validator validatorId="myValidator" disabled="#{empty param['formId:buttonId']}" /> 

Где formId это идентификатор вашего <h:form> и buttonId это идентификатор кнопки, который, как предполагается, будет только кнопка для запуска проверки.

 Смежные вопросы

  • Нет связанных вопросов^_^