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 :

Modifier l'attribut "value" d'un input (pour de bon !)


Sujet :

jQuery

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Par défaut Modifier l'attribut "value" d'un input (pour de bon !)
    Bonjour,

    Je me heurte à un soucis colossal.

    J'ai besoin de copier le code HTML de quelques éléments HTML, y compris des balises <input />. Cela fonctionne bien, grâce à la fonction html() de jQuery.

    Sauf que si je change l'attribut "value" d'une balise input, bien que le JavaScript reconnaît ma nouvelle valeur, lorsque je fais une copie du code HTML, l'attribut value reste intact*!

    Exemple*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" value="un" />
    On clique dessus et on change par exemple "un" en "deux". Puis*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $('input').val(); // renvoie bien "deux"
    $('input').html(); // renvoie toujours <input type="text" value="un" />
    Pourquoi le code HTML reste intact et comment puis-je y remédier*?

    Merci.

    P.S. La raison pour laquelle je copie le code HTML, et non pas les objets HTML eux-mêmes, c'est que mon but est de copier des éléments d'une page, les stocker dans un cookie, puis les insérer sur une autre page (un copier/coller JavaScript).

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    C'est le comportement normal.

    Il faut bien distinguer le code HTML de la page, et le DOM construit à partir du code HTML.

    $("input").val("deux"); modifie dans le DOM la propriété value mais pas le code HTML.

    $("input").attr("value", "trois"); modifie le code HTML et le DOM est reconstruit automatiquement pour en tenir compte.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

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