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 :

.empty() qui ne fonctionne pas


Sujet :

jQuery

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Points : 29
    Points
    29
    Par défaut .empty() qui ne fonctionne pas
    Bonjour,

    je cherche à vider des input avec un bouton et Jquery. Je pensais savoir faire, mais ça ne fonctionne pas et je ne trouve pas mon erreur.
    Le code est là pour tester : http://jsfiddle.net/M5PHP/725/

    Mon html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div id="idMdph">
    	<fieldset>
    	<legend><img src="images/icons/mdph.png" /></legend>
    	<ul class="cols">
    	<input type="button" name="new_notif" value="Nouvelle Notification" class="new_notif" id="new_notif"/>
            <li><label>Notification MDPH du * : </label><input type="text" name="date_notif_mdph" id="date_notif_mdph" value="15/20/2015"/></li>
    	<li><label>Type notif MDPH : </label> 	<input type="text" name="type_notif_mdph" id="ok" value="AVS"/></li>
    	</ul>
    	</fieldset>
    </div>

    Mon JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(document).ready(function(){
        var $new_notif = $('#new_notif');
        var $date_notif_mdph = $('#date_notif_mdph');
        $new_notif.click(function() {
    		$date_notif_mdph.empty();	
                    alert("ok");
        });
    });
    Je rentre dans ma fonction puisque mon alerte fonctionne ...
    Si je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#date_notif_mdph').empty();
    ça ne marche pas plus

    Merci de votre aide.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par empty
    Remove all child nodes of the set of matched elements from the DOM.
    Quel sens ça peut avoir de vouloir supprimer les noeuds enfant d'une balise orpheline ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Points : 29
    Points
    29
    Par défaut
    Bonne question, mais n'étant pas codeur à la base, je fais avec mes maigres connaissances.
    Comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_notif_mdph.val('');
    ça fonctionne. J'en déduis que j'ai mal compris ce que faisait exactement la méthode empty().

    Je mets le sujet résolu. Merci.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Comme indiqué dans sa définition, .empty() sert à supprimer du DOM les éléments enfants (balises, texte, commentaires, ...) d'un élément de référence. Mais une balise orpheline (ou auto fermante) ne possède par définition pas de noeuds enfant.
    Ce n'est donc pas ce que tu veux faire. Toi, ce que tu veux, c'est vider l'attribut value de la balise. C'est d'ailleurs pour ça que ta solution est la bonne.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Points : 29
    Points
    29
    Par défaut
    Merci pour cette explication.
    Je me suis inspiré de ce code (qui fonctionne, je l'utilise) :
    JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $commune.on('change', function() {
    	var val = $(this).val(); // on récupère la valeur de la commune
    	if(val != '') {
    		$denomination_etab.empty(); // on vide la liste des établissements
    		$.ajax({ ....
    HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <ul class="cols">
    	<li><label>Commune * : </label>			<SELECT name="commune" id="commune">
    		<option value="">-- Commune --</option>
    <? while($valCom = mysql_fetch_array($resultCom)) {
            if( $valCom['commune'] == $valEl['commune'] ) {
                    echo '<OPTION value="'.$valCom['commune'].'" selected="selected">'.$valCom['commune'].'</OPTION>';
            }
            else {
                    echo '<OPTION value="'.$valCom['commune'].'">'.$valCom['commune'].'</OPTION>'
            }
    } ?>
    	</SELECT></li>
    	<li><label>Établissement * : </label>	<SELECT name="denomination_etab" id="denomination_etab">
    		<option value="<? echo $valEl['rne_etab']?>"><?                      echo $valEl['denomination_etab']?></option>
    	</SELECT></li> .....

    Je comprends maintenant mon erreur, le code ci dessus ne vide pas les valeurs mais supprime les balises enfant du SELECT (OPTION) ... J'avais pas compris cela.

    Encore merci.

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

Discussions similaires

  1. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08
  2. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 16h10
  3. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 12h26
  4. CREATEFILEMAPPING qui ne fonctionne pas???
    Par Jasmine dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 19h33
  5. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04

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