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

jQuery Discussion :

Afficher un bouton si on entre dans un input


Sujet :

jQuery

  1. #1
    Membre averti
    Homme Profil pro
    architecte
    Inscrit en
    Avril 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : architecte
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2016
    Messages : 38
    Par défaut Afficher un bouton si on entre dans un input
    Bonjour à tous,

    Ne trouvant pas de solution au problème que je vais vous décrire et qui pourtant ne me semble pas si compliqué (bon après je suis une quiche en javascript du coup c'est ptêtre compliqué ), je m'adresse à vous afin d'être aiguillé:

    Je récupère des valeurs dans une BDD que j'affiche sur une page web sous forme de tableau. chaque valeur est affichée en tant que "placeholder" dans un input et un bouton submit est associé à chaque input. Quand je souhaite modifier une des valeurs, je clique sur l'input et tape ce que je veux, puis j'appuie sur le bouton qui permet d'ajouter la nouvelle valeur dans ma BDD et de l'afficher au prochain reload de la page.

    Aujourd'hui, cette méthode fonctionne correctement mais, dans un soucis d'optimisation esthétique, je souhaiterai rendre le bouton visible seulement si je clique dans l'input ou , encore mieux, seulement si je tape quelque chose dans l'input. Malheureusement, le hic c'est que je ne sais pas comment faire

    Alors si certains d'entre vous , cher développeur pro et amateur , avez des idées, n'hésitez pas à partager

    merci et bon weekend!

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 629
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 629
    Par défaut
    si vous avez des champs définis comme cela
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <p class="saisie">
    	<input type="text" name="valeur1"/>
    	<button>enregistrer</button>
    </p>
     
     
    <p class="saisie">
    	<input type="text" name="valeur2"/>
    	<button>enregistrer</button>
    </p>

    vous pouvez gérer les boutons avec jQuery comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	// cacher les boutons au chargement de la page
    	$(".saisie button").hide();
     
     
    	// afficher lors d'une saisie
     
    	$(".saisie input[type=\"text\"]").on("change keydown", function () {
     
    		$(this).parent().find("button").show();
     
    	});

  3. #3
    Membre averti
    Homme Profil pro
    architecte
    Inscrit en
    Avril 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : architecte
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2016
    Messages : 38
    Par défaut
    Bonsoir et merci pour ce retour !

    j'ai testé ce code qui fonctionne très bien.

    En revanche dans mon cas, mon bouton est issu de bootstrap et est inclus dans un form.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form class="form-inline" method="post">
       <?= $form->input('M_name', '',['placeholder' => $word,'color'=>$color]); ?>
       <?= $form->input('M_id','',['type'=>'hidden','placeholder' => $v->M_id]); ?>
       <?= $form->input('C_id','',['type'=>'hidden','placeholder' => $v->C_id]); ?>
     
       <button class="btn btn-primary">Sauvegarder</button>
    </form>

    Existe-t-il une possibilité de gérer l'affichage de ce type de bouton avec jquery?

  4. #4
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut
    Dans ton cas, tu peux utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(".form-inline button").hide();
    Normalement, cela devrait fonctionner

  5. #5
    Membre averti
    Homme Profil pro
    architecte
    Inscrit en
    Avril 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : architecte
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2016
    Messages : 38
    Par défaut
    Salut et merci pour ton retour.

    Je testes ça ce soir et reviens vous dire ce qu'il en est .

    Bonne journée !

  6. #6
    Membre averti
    Homme Profil pro
    architecte
    Inscrit en
    Avril 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : architecte
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2016
    Messages : 38
    Par défaut
    hello,

    ta ligne fonctionne pour masquer les boutons bootstrap.
    je cherche maintenant comment les réafficher quand je tape dans mon input

  7. #7
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Bonsoir,

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $(".form-inline button").show()

  8. #8
    Membre averti
    Homme Profil pro
    architecte
    Inscrit en
    Avril 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : architecte
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2016
    Messages : 38
    Par défaut
    j'avais bien essayé de mettre cette ligne mais , si je la met directement mes boutons ne disparaissent pas. j'ai donc essayé de l'intégrer au code précédemment proposé:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <script>
        $(".saisie button").hide();// cacher les boutons saisie
        $(".form-inline button").hide(); // cacher les boutons form-inline
     
      // affichage bouton form-inline?
      $(".form-inline input[type=\"text\"]").on("change keydown", function () {
        $(this).parent().find("button").show();
      });
     
      // afficher bouton saisie
      $(".saisie input[type=\"text\"]").on("change keydown", function () {
        $(this).parent().find("button").show();
      });
      </script>
    mais ceci ne fonctionne pas non plus.

  9. #9
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut
    Salut,

    As-tu essayé de l'écrire comme cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script>
        $(".saisie button").hide();// cacher les boutons saisie
        $(".form-inline button").hide(); // cacher les boutons form-inline
     
      // affichage bouton form-inline?
      $(".form-inline input[type=\"text\"]").on("change keydown", function () {
        $(".form-inline button").show();
      });
     
      // afficher bouton saisie
      $(".saisie input[type=\"text\"]").on("change keydown", function () {
        $(".saisie button").show();
      });
      </script>

  10. #10
    Membre averti
    Homme Profil pro
    architecte
    Inscrit en
    Avril 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : architecte
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2016
    Messages : 38
    Par défaut
    hello,

    la méthode que tu proposes fonctionne mais sur ma page j'ai plusieurs input avec bouton associés et quand je tape dans un input, les boutons de tous les input s'affichent.

    j'ai essayé de remplacer dans le find le mot "button" par ".form-inline button" mais ca ne fonctionne pas

    Bonne soirée

Discussions similaires

  1. Touche entrée dans un input valide le formulaire
    Par Marc31 dans le forum Débuter
    Réponses: 1
    Dernier message: 27/04/2017, 21h06
  2. Réponses: 66
    Dernier message: 19/11/2013, 15h08
  3. Réponses: 5
    Dernier message: 15/09/2011, 22h53
  4. afficher la valeur d'un select dans un input
    Par Invité dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/08/2011, 16h55
  5. afficher une liste lors du click dans un input
    Par NicoO_O dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/04/2009, 20h07

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