У меня есть страница JSF, в которой я повторяю список для отображения <h:dataTable>
с некоторыми строками, содержащими флажок, текст и текстовое поле. Я добавил проверки таким образом, что если проверяется chechbox в строке, пользователь должен ввести значение в соответствующее текстовое поле. Кроме того, у меня есть флажок с идентификатором 'copy' выше <h:dataTable>
, который должен скопировать значение, введенное в первом текстовом поле, ко всем другим текстовым полям, чьи флажки отмечены в пределах <h:dataTable>
. Я использовал ajax-вызов для этого же.Отключить Валидации во время вызова ajax
<h:form prependId="false" id="form">
<h:selectBooleanCheckbox value="#{bean.copy}" id="copy">
<p:ajax process="#{bean.mailId}"
event="change" partialSubmit="true"
listener="#{Controller.copyEmail()}"
update="rm">
</p:ajax>
</h:selectBooleanCheckbox>
<h:dataTable id="rm" width="100%" cellspacing="4"
value="#{controller.alertTriggers}" var="alt"
columnClasses="c1,c2,c3,c4">
<h:column>
<h:selectBooleanCheckbox value="#{alt.checkValue}" id="checkbox" binding="#{checkbox}"/>
</h:column>
<h:column>
<h:outputText value="#{alt.id}" />
</h:column>
<h:column>
<h:outputFormat value="#{alt.msg1}" />
</h:column>
<h:column>
<h:message for="emailID" id="email" styleClass="validation-error"/>
<h:inputText value="#{alt.mailId}" id="emailID" style="width: 87%;" required="#{checkbox.value}" requiredMessage="Enter the value"/>
</h:column>
</h:dataTable>
</h:form>
В контроллере
public void copyEmail() {
//code for copying the first textbox value to all other textboxes
}
проверки достоверности работает отлично, но когда я проверить копию флажок, значение текстового поля не копируются в другие текстовые поля. Вместо этого отображаются ошибки проверки. Если я удаляю проверки из текстового поля, копирующая часть работает нормально.
Я попытался использовать immediate=true
для моего вызова ajax, но тогда значение флажков внутри <h:dataTable>
не обновляется внутри контроллера.
Таким образом, в заключение
Я хочу, чтобы отключить мои валидаций во время вызова Ajax. Есть ли способ сделать это, кроме immediate=true
?
Большое спасибо ... Это было все, что я хотел !!!! –
Добро пожаловать. – BalusC