faire Comment définir la valeur d'un composant d'entrée et modifier également le DOM? P>
J'utilise $ ("# siéid"). Val ("nouveauvalue") code> ne change pas le DOM -
Je peux récupérer cette valeur avec
$ ("# siéide"). Val () code>, mais l'élément de la DOM n'a toujours pas d'attribut de valeur. P>
jQuery 1.5.1 code>. p>
4 Réponses :
.val () fait strong> change le DOM. Par exemple, ceci: alertes "NewValue". P> voir Démo . P> Si vous souhaitez modifier la valeur par défaut em> à utiliser dans le formulaire réinitialise, essayez ceci: p> voir démo . p> p>
@Alex: Veuillez poster un EXEMPLE JSFIDDLE qui démontre ce que vous dites. Peut-être que vous ne regardez pas à jour DOM - voir le commentaire de Val.
@RSP, idem dans l'inspecteur Web ... Vous avez écrit l'exemple approprié, mais il existe toujours des problèmes ... Élément d'inspection dans n'importe quel navigateur, indique qu'il n'y a pas d'attribute "valeur" ...
@Alex: Je viens de vérifier et Safari et Firefox montrent la valeur correcte. En outre, si ce n'était pas dans le DOM, documenter.getElementtyid ("quelqueid"). La valeur ne retournerait pas cette valeur. Êtes-vous sûr que vous regardez au bon endroit?
@RSP: Oui, c'est pourquoi je suis confus ... Ok, il y a une capture d'écran img851 .imageshack.us / img851 / 8295 / Capturehot20110308AT338.png , regardez l'élément inspecté et découvrez qu'il n'y a pas d'attribut «valeur». Chrome, Mac OS X
@Alex: Vous envisagez la source HTML, pas la DOM. Lorsque vous cliquez avec le bouton droit de la souris sur l'élément de Firefox et sélectionnez «Inspecter l'élément», cliquez sur l'onglet DOM de la fenêtre inférieure droite et recherchez la propriété «Valeur». C'est ici?
@RSP, oui valeur Atribute là-bas ... maintenant je l'ai eu. Mais il existe toujours des problèmes lorsque je génère un DOM approprié en mémoire. Par exemple, je dois charger certaines dom et définir une certaine valeur de l'entrée, via .val (). La valeur définira, mais dans la source, il n'y a pas d'attribut de valeur. Et plus tard, lorsque je réinitialise un formulaire, via .Reset (), tout le champ de saisie est vide, mais ne devrait pas, comme la réinitialisation fonctionne uniquement pour les champs édités ... J'espère que j'ai expliqué pourquoi j'ai besoin de changer de véritable HTML. D'autre part, je peux ajouter et modifier tout attribut via .attr (), mais cela ne fonctionne pas pour "valeur" ...
@ALEX Comme je l'ai expliqué sur ma réponse, Fire-Bug manipule uniquement les codes source HTML afin qu'il puisse vous rendre la vie plus facile à déboguer et suivre les modifications des pages dynamiques. avec cela à l'esprit, vous aurez toujours des bugs qui ne fonctionnent pas toujours, ni n'ont pas encore été mis en œuvre
@Val, il ne s'agit pas de Firebug. Il est question de savoir comment définir la valeur d'attributs dans JQuery en mémoire, dans ce cas, il faut ressembler à:
tu me conduisas fou lol :) L'onglet HTML sur Firebug ne met pas à jour valeur code> attr mais il fait dans DOM,
@Val, oui exactement! Et c'est pourquoi la réinitialisation de la forme ne fonctionne pas comme devrait être. Ok, je dois écrire un exemple avec une forme ...
@Alex: Ce que vous voulez probablement changer n'est pas valeur i> mais defaultValue i>. Voir exemple dans la mise à jour de ma réponse.
Voir ce violon: Jsfiddle.net/ykvxj/48 La propriété OUTERHTML ne montre pas de changement de < Code> Valeur Code>. Puis-je conclure que DOM n'est pas mis à jour, mais simplement la valeur de la propriété code> est mise à jour.
ou Code> Peut-être parce que le punais de feu, l'a eu tort et y travaillent probablement sur :) p>
lire de "RSP" Réponse et discussion:
Vous souhaitez modifier la source HTML, pas le DOM. P>
Par conséquent, utilisez: P>
$('#YOUR_ID option[value="YOUR_VALUE"]').attr('selected', 'selected');
Ceci changera la valeur de l'élément d'entrée. p> Ceci P> $("#someId").val("newValue")
write($("#someId").parent())
Si vous utilisez le Firebug, il y a un bogue dans la mise à jour du DOM, vous devez cliquer sur l'objet de la fenêtre pour l'actualiser :)
Tapez une réponse Val afin que je puisse monter :)
@Val, où je devrais cliquer sur l'objet de la fenêtre? Dans DOM TAB?
Vérifiez ma réponse et cela devrait faire un peu plus de sens.