IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Vérification de champs vide


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 41
    Points
    41
    Par défaut Vérification de champs vide
    Bonjour,

    Je voudrai savoir si vous connaissez un moyen de verifier si un champs de formulaire est vide sans utiliser require="true".

    J'ai un formulaire classique comprenant un formulaire ajax, si je mets require="true", cela verifie bien mon formulaire ajax, mais cela m'empêche de valider mon formulaire global.
    Je pensais pouvoir faire ca avec un validator mais si le champs est vide, le validator n'est pas appelé (normal).
    Je sais que je peux faire une verification en javascript mais j'aimerai savoir s'il existe un moyen plus élégant que de lancer un "alert" javascript.

    Merci de vos réponses.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    non tu n'a pas besoin de validators, il y'a moyen de ne pas passer par la phase validation pour une requete ajax, et tu peux garder ton required, qui est déjà un validator.
    de toute façon meme un validator personnalisé sera appelé pour une requete ajax..
    juste montre comment ut fais l'appel ajax .

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 41
    Points
    41
    Par défaut
    Merci pour tes réponse Sniper37.

    Citation Envoyé par Sniper37 Voir le message
    non tu n'a pas besoin de validators, il y'a moyen de ne pas passer par la phase validation pour une requete ajax, et tu peux garder ton required, qui est déjà un validator.
    Nom car ce champs de formulaire n'est pas nécéssaire dans mon formulaire global et si je garde le require, je ne peux valider mon formulaire global.

    Citation Envoyé par Sniper37 Voir le message
    de toute façon meme un validator personnalisé sera appelé pour une requete ajax..
    Oui mais pas si le champs est vide

    Citation Envoyé par Sniper37 Voir le message
    juste montre comment ut fais l'appel ajax .
    j'ai ceci par exemple qui est compris dans un formulaire global

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    ...
    <t:panelGroup>
    	<h:outputText value="Contributeur:" styleClass="labelChamp"/><br/>
    	<h:outputText value="(Forfait)" styleClass="labelChamp"/>
    </t:panelGroup>
    <t:panelGroup colspan="2">&nbsp;
    	<a4j:outputPanel>
    		<rich:dataTable id="raocontributeurcharge" value="#{gestionRaoBean.lcharge}" var="chg" styleClass="tabCharge" columnClasses="tabCharge">
    			<rich:column>
    				<h:outputText value="nom:" />
    			</rich:column>
    			<rich:column>
    				<h:inputText id="contributeurnom" value="#{chg.personne.nom}" size="4" maxlength="4" readonly="true">
    				</h:inputText>
    				</rich:column>
    				<rich:column>
    					<h:outputText value="charge:" />
    				</rich:column>
    				<rich:column>
    					<h:inputText id="contributeurcharge" value="#{chg.nbHeure}" size="3" maxlength="3" readonly="true">
    					</h:inputText>
    				</rich:column>
    				<rich:column>
    					<a4j:commandButton id="supchargecontrib" action="#{gestionRaoBean.deleteNewCharge}" image="media/images/supp.png" alt="Supprimer le contributeur" title="Supprimer le contributeur" style="vertical-align: middle;" reRender="raocontributeurcharge">
    							<c:setPropertyActionListener value="#{chg}" target="#{gestionRaoBean.charge}" />
    					</a4j:commandButton>
    				</rich:column>
    			</rich:dataTable>
     
    			<h:panelGrid id="raocontributeurchargenew" styleClass="tabCharge" >
    				<h:panelGroup >
    					<h:outputText value="nom:" />&nbsp;
    					<h:inputText id="contributeurnomnew" value="#{gestionRaoBean.nomCharge}" size="4" maxlength="4">
    					</h:inputText>&nbsp;
    					<h:outputText value="charge:" />&nbsp;&nbsp;
    					<h:inputText id="contributeurchargenew" value="#{gestionRaoBean.nbHeureCharge}" size="3" maxlength="3">
    					</h:inputText>&nbsp;&nbsp;
    					<a4j:commandButton id="addchargecontrib" action="#{gestionRaoBean.saveNewCharge}" image="media/images/add.png" alt="Enregistrer le contributeur" title="Ajouter le contributeur" style="vertical-align: middle;" reRender="raocontributeurcharge">
    					</a4j:commandButton>
    				</h:panelGroup>
    			</h:panelGrid>
    		</a4j:outputPanel>
    	</t:panelGroup>
     
    ...

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    tu parle de quel champs? je ne vois pas de requete ajax sauf le commandbutton,

    une requete ajax passe par les memes phaes qu'une requete normal.
    si tu ne veux pas qu'un element du formulaire soit envoyé avec une valeur null, tu dois alors le faire ds le validator..
    si tu veux bypasser la phase de validation pour une requete particulière. tu peux utiliser immediate=true dans le commandButton..

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 41
    Points
    41
    Par défaut
    En fait, avec le commandButton, j'envoi les champs "gestionRaoBean.nomCharge"
    et "gestionRaoBean.nbHeureCharge" à monbean de facon à les ajouter à ma datatable du dessus (sans recharger ma page). Ces deux champs ne devraient pas etre vide lorsqu'on appuye sur le commandbutton. Mais bien sur ces champs sont vides lorsque je clique sur un bouton valider du formulaire global.
    Si je mets require="true" sur ces deux champs, je verifie bien qu'il ne sont pas vide et du coup ils sont valides et s'affichent bien dans ma datatable juste au dessus. Mais cela pose problème pour mon formulaire global qui attend que ces champs soient remplis pour valider le formulaire.

    Est ce plus clair, car j'ai l'impression qu'on ne se comprend pas bien

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    oouii je ne comprend pas trop,
    required=true permet d'eviter d'envoyer une valeur vide, c'est ce que tu souhaites faire..si tu les réaffoche et que tu envoies le formulaire global ils ne doivent pas etre null à moins que ton bean est seulement en request.

    sinon dans l'action du commandButton tu test si la valeur est vide.ou utilise un autre form pr le commandButton

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 41
    Points
    41
    Par défaut
    Comme une image vaut mieux qu'un long discours :



    Il s'agit de la partie contributeur qui rajoute des contributeurs (appellés charge dans mon code) tel que JKL, SDF ou GOU.
    Lorsque j'appuie sur le "+" bleu (mon commandbutton) cela rajoute une nouvelle entrée dans ma datatable (sans rechargement de la page).

    Du coup, il faut que ce champ soit rempli quand je clique sur le "+" mais pas quand je clique sur "Enregistrer".

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    1-tu peux mettre le boutton les champs et le button dans un formulaire à part..
    2-sinon tu valide coté client:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="javascript:if(document.getelementById('id')=null) alert(''))"
    3- ou dans le coté java..

    ajoute à ton fichier xhtml/jsp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:inputHidden id="validate" value="needed" required="true" />
    dans l'action du commandButton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    if(bean.getNom()==null){
    FacesContext context = FacesContext.getCurrentInstance();
    FacesMessage message = new FacesMessage();
    message.setDetail("champs ne doit pas etre null");
    message.setSeverity(FacesMessage.SEVERITY_ERROR);
    context.addMessage("formId:validate", message);
    }

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 41
    Points
    41
    Par défaut
    Super, c'est quelque chose comme la solution 3 que je cherchais.

    Merci de ton aide et de ta perseverrance Sniper37

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vérification champs vides
    Par c4ever dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/12/2012, 05h06
  2. vérification champs vide dans array html
    Par knebhi dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 08/07/2009, 16h08
  3. vérification champ vide en ajax
    Par knebhi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/05/2009, 15h12
  4. [WD14] Vérification champ vide + envoir mail HTML
    Par cflo56 dans le forum WinDev
    Réponses: 2
    Dernier message: 03/02/2009, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo