J'ai une entrée HTML avec un lien dans la valeur.
<input type = 'text' value = 'http://www.link.com' id = 'link' />
J'utilise jQuery pour changer la valeur d'un certain événement.
$('#link').val('new value');
Le code ci-dessus modifie la valeur de la zone de texte mais ne modifie pas la valeur dans le code (value = 'http://www.link.com' reste inchangé). J'ai besoin que la valeur = '' change également.
javascript
jquery
Lukas
la source
la source
in the code
? Regardez-vous la source originale (donc non modifiée) de la page?Réponses:
Utilisez
attr
plutôt.$('#link').attr('value', 'new value');
démo
la source
setAttribute
ou jQuery,attr
vous affecterez également la valeur de l'élément DOM: jsfiddle.net/a8SxF/1.html()
, alors il y aura toujours la même ancienne valeur, peu importe, si vous utilisez.val('new value')
ouattr('value', 'new value')
... :(La modification de la propriété value ne modifie pas le
defaultValue
. Dans le code (récupéré avec.html()
ouinnerHTML
), l'attribut value contiendra ladefaultValue
propriété value, pas la propriété value.la source
pour développer un peu la réponse de Ricardo: https://stackoverflow.com/a/11873775/7672426
http://api.jquery.com/val/#val2
à propos de val ()
la source
Ce n'est qu'un scénario possible qui m'est arrivé. Eh bien, si cela aide quelqu'un, c'est génial: j'ai écrit une application compliquée qui, quelque part dans le code, j'ai utilisé une fonction pour effacer toutes les valeurs des zones de texte avant de les afficher. Quelque temps plus tard, j'ai essayé de définir une valeur de zone de texte en utilisant jquery val ('value') mais je n'ai pas remarqué que juste après cela, j'ai appelé la méthode ClearAllInputs .. donc, cela pourrait également arriver.
la source
Explication: Attr fonctionnera sur jQuery 1.6 mais depuis jQuery 1.6.1, les choses ont changé. Dans la majorité des cas, prop () fait ce que attr () faisait auparavant. Le remplacement des appels à attr () par prop () dans votre code fonctionnera généralement. Attr vous donnera la valeur de l'élément tel qu'il a été défini dans le html lors du chargement de la page et prop donne les valeurs mises à jour des éléments qui sont modifiés via jQuery.
la source
Mon problème similaire a été causé par la présence de caractères spéciaux (par exemple, des points) dans le sélecteur.
Le correctif était d'échapper aux caractères spéciaux:
la source
la source
Pour moi, le problème était que la modification de la valeur de ce champ ne fonctionnait pas:
Aucune des solutions ci-dessus n'a fonctionné pour moi, j'ai donc étudié plus en détail et trouvé:
Selon la spécification d'événement de niveau 2 du DOM: l'événement change se produit lorsqu'un contrôle perd le focus d'entrée et que sa valeur a été modifiée depuis que le focus a été obtenu. Cela signifie que l'événement de changement est conçu pour se déclencher lors du changement par interaction de l'utilisateur. Les modifications programmatiques ne provoquent pas le déclenchement de cet événement.
La solution était d'ajouter la fonction de déclenchement et de la faire déclencher un événement de changement comme celui-ci:
la source
Vérifiez deux fois plus d'un élément avec un identifiant non unique! C'était ma situation avec la boucle foreach et la duplication de mes identifiants.
la source