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

JavaScript Discussion :

Nettoyer un champ de formulaire si refus confirmation


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut Nettoyer un champ de formulaire si refus confirmation
    Bonjour à toutes et tous

    Je me heurte à un petit problème donc je viens demander votre aide.
    J'ai un formulaire dans lequel je renseigne mon champ. Le but de se formulaire est d'effacer le champ rentrée dans ma BDD.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="POST" action="/initest/suppressionurl/suppressionurl" onSubmit="return confirmation();">
                <label for="URLASupprimer">URL à Supprimer:</label><input type="text" class="URLASupprimer" name="URLASupprimer" style="width:250px"/>
                <input type="submit" id="ValiderSuppr" value="Valider">
            </form>


    J'ai donc installé une "confirmation" en javascript pour demander à l'utilisateur s'il est sûr de vouloir effacer la donnée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function confirmation()
    {
    	if (window.confirm('Attention, vous êtes sur le point de supprimer l\'URL sélectionnée, voulez-vous continuer ?'))
    	{
    	}
    	else
    	{
    		return false;
    	}
    }
    Cela marche bien, mais je voudrais que lorsque je refuse de confirmer, je nettoie le champ de mon formulaire. Et la je coince. Donc pouvez-vous m'aider svp ???

    PS: la solution proposée peut être soit en javascript natif soit avec jQuery (vu que je l'utilise)

  2. #2
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    En ajoutant un attribut id au champ concerné
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" class="URLASupprimer" name="URLASupprimer" id="URLASupprimer" style="width:250px" />
    On peut y accéder simplement pour y modifier ses propriétés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.getElementById('URLASupprimer').value='';
    return false;

  3. #3
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut
    Bonjour et merci pour la réponse,

    Sans avoir a ajouter un id est-ce que cela peut fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jQuery(".URLASupprmier").value("");
    ???

  4. #4
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    N'utilisant pas la bibliothèque jQuery, je ne peux te répondre

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    Sans avoir a ajouter un id est-ce que cela peut fonctionner:
    un minimum de recherche ne te tente pas

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Mon petit doigt me dit que tu vas sans doute un peu galérer si tu veux garder ta syntaxe et utiliser jquery. Il faudra transmettre l'objet (ici le formulaire) depuis le "onsubmit" pour le manipuler avec jquery. Cela pourrait donner :

    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
    <form method="post" action="/initest/suppressionurl/suppressionurl" onsubmit="return validerSuppr(this);">
        <label>URL à Supprimer:<input type="text" name="URLASupprimer" style="width:250px"/></label>
        <input type="submit"  value="Valider">
    </form>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <script>
    function validerSuppr(objet)
    {
    	if (!window.confirm('Attention, vous êtes sur le point de supprimer l\'URL sélectionnée, voulez-vous continuer ?'))
    	{
    		$(objet).find('input[name=URLASupprimer]').val('').focus();
    		return false;
    	}
    }
    </script>
    Plus classiquement et pour éviter d'ajouter des comportements javascript à l'intérieur du html, on externalise le onsubmit que l'on défini alors en ciblant l'objet (ici le formulaire).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <form class="validerSuppr" method="post" action="/initest/suppressionurl/suppressionurl">
        <label>URL à Supprimer:<input type="text" name="URLASupprimer" style="width:250px"/></label>
        <input type="submit"  value="Valider">
    </form>
    <script>
    $(".validerSuppr").on('submit',function()
    {
    	if (!window.confirm('Attention, vous êtes sur le point de supprimer l\'URL sélectionnée, voulez-vous continuer ?'))
    	{
    		$(this).find('input[name=URLASupprimer]').val('').focus();
    		return false;
    	}
    })
    </script>
    J'ai choisi dans ce deuxième exemple une classe pour cibler le formulaire ce qui permettrait de mettre l'ensemble dans une boucle.

    Ton réflexe était bon de vouloir éviter d'ajouter un identifiant. En effet, sauf cas particuliers, inutile d'alourdir le code quand on peut cibler les éléments facilement par rapport à leur contexte. Aussi j'ai épuré au maximum dans mes exemples.

    Les explications du code peuvent se trouver dans le lien qu'à donné NoSmoking

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2011
    Messages : 27
    Par défaut
    Bonjour, En Jquery cela donnerait $("input[value='leNomInput']").val("") pour vider l'input dont le nom est leNomInput,
    si tu veux vider pusieurs input qui aurait la même classe alors tu pourrais utiliser $('.maClasse'), avec un id ça donnerait $("#monId"), etc...

Discussions similaires

  1. Tester si un champ de formulaire est vide
    Par pekka77 dans le forum ASP
    Réponses: 3
    Dernier message: 28/06/2005, 16h18
  2. Champ de formulaire "file"
    Par tom06440 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/05/2005, 13h56
  3. [Word] Création d'un champs de formulaire
    Par Oberown dans le forum Word
    Réponses: 2
    Dernier message: 18/04/2005, 11h10
  4. Réponses: 2
    Dernier message: 28/10/2004, 16h54
  5. Probleme avec les champs du formulaire
    Par Red_devils dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 29/09/2004, 13h06

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