Bonjour,
J'ai un module de type CRUD (create, read, update, delete) qui m'affiche une liste d'éléments. Un bouton d'édition en face de chaque ligne permet d'éditer () chacun des éléments.
L'édition se fait dans un modalPanel qui s'affiche donc et qui contient le formulaire suivant:
Mon soucis est que j'utilise un ajaxValidator qui va valider (
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <rich:modalPanel id="editPanel" autosized="true"> <d:modalpanel.edit.common backingBean="#{billedOBLBean}"/> <h:panelGrid columns="1"> <!-- Partie 1 : Détail de l'OBL facturé --> <h:form id="oblForm" > <h:panelGrid columns="1" id="oblDetail"> <h:messages style="color:darkred"/> <h:panelGrid columns="2"> <h:outputText value="#{msg.obl_edit_field_name}"/> <h:panelGroup> <h:inputText id="nameField" value="#{billedOBLBean.currentRow.name}" > <rich:ajaxValidator event="onblur" ajaxSingle="true" reRender="submitForm, labelSubmit, editSubmit" summary="Enregistrement impossible."/> </h:inputText> <rich:message for="nameField"/> </h:panelGroup> <h:outputText value="#{msg.obl_edit_field_company}"/> <h:selectOneListbox size="1" value="#{billedOBLBean.currentRow.idCompany}"><f:selectItems value="#{billedOBLBean.companiesName}" /></h:selectOneListbox> </h:panelGrid> <rich:spacer width="1" height="20"/> <h:inputHidden id="validate" value="#{billedOBLBean.currentRow.id}"/> </h:panelGrid> <h:outputText value="#{billedOBLBean.errorMessage}" id="labelSubmit"/> <a4j:commandButton action="#{billedOBLBean.doSave}" disabled="#{! empty facesContext.maximumSeverity}" id="editSubmit" value="#{msg.command_submit}" reRender="oblDetail, editPanel, mainTable" /> <a4j:commandButton action="#{billedOBLBean.doCancel}" id="hidelink" value="#{msg.command_cancel}" immediate="true" ajaxSingle="true" /> <rich:componentControl for="editPanel" attachTo="hidelink" operation="hide" event="onclick"/> </h:form>) le contenu de mon champ en fonction d'annotation sur mon objet Hibernate.
Le message d'erreur s'affiche bien en regard du champ quand je tape n'importe quoi dedans mais j'arrive aussi en toute impunité à valider mon formulaire (le modalPanel se ferme et j'ai un autre message d'erreur, celui du summary de mon AjaxValidator qui s'affiche dans mon champ messages au dessus de ma liste, c'est déjà ça..).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @Basic @Column(name = "Nom") @Pattern(regex="[\\sA-Z0-9]+", message="Le nom doit être en majuscule, avec ou sans caractères numériques.") private String name;
Ce que je souhaiterai faire c'est interdire la soumission de mon formulaire en retournant false sur le onsubmit par exemple ou en grisant mon champ "valider" si le formulaire contient des valeurs incorrecte.
Je n'y suis pas arrivé avec #{! empty facesContext.maximumSeverity}" sur le display de mon bouton ni en le mettant dans le onsubmit.
Quelqu'un aurait-il une autre solution svp?
Partager