Intérieure HTML avec des valeurs d'entrée
ai une petite question concernant innerHTML et la valeur des données qui ont été saisies. Voir la brève exemple ci-dessous (à l'aide de jQuery pour des raisons de commodité):
jQuery:
jQuery(document).ready(function($) {
$('.send').click(function() {
alert( $('.content').html() );
return false;
});
});
html:
<div class="content">
<input type="text" name="input" value="Old Value" />
<input type="button" class="send" value="Send" />
</div>
Si vous modifiez la valeur d'entrée, puis cliquez sur le bouton "Envoyer", l'alerte indique que le innerHTML obtenu contient de l'entrée avec la "Vieille Valeur", plutôt que la valeur que l'utilisateur a entré. Pourquoi est-ce? Et comment pouvons-nous obtenir le code HTML comme une chaîne de caractères avec l'utilisateur a entré les valeurs d'entrée?
Vous devez vous connecter pour publier un commentaire.
La nouvelle valeur est stockée comme une propriété qui n'est pas un attribut, la valeur peut être obtenue par
inputelement.value
, la modification de la valeur n'affecte pas l'attribut. Si vous voulez le code html avec la nouvelle valeur juste définir l'attribut de la nouvelle valeur.Pour les cases à cocher et des boutons radio définissez l'attribut checked, définir le innerHTML pour les zones de texte, sélectionne pour définir l'attribut sélectionné l'option
http://jsfiddle.net/mowglisanu/F7urT/5/
Vous ne pouvez pas l'obtenir avec
.innerHTML
(.html()
). L'écriture dans un élément ne doit pas modifier le code html, ni modifier lavalue
attribut dans la majoration réelle.Vous ne pouvez accéder à du contenu en cours par des questions directes à la élément de son
.value
- valeur. À l'aide de jQuery, vous pouvez le faire via.val()
trop.cette solution est meilleure. fonctionne pour plus d'entrées.
$('#input_id').attr('value',$('#input_id').val());
va mettre la valeur dans le code html