est-il possible d'obtenir le code HTML d'un formulaire avec des attributs de valeur mis à jour via la fonction .html ()?
Le (simplifié) HTML: P>
$(document).ready(function()
{
$('a').on('click', function() {
alert($('form').html());
});
});
3 Réponses :
Si vous devez vraiment avoir le HTML, vous devez réellement mettre à jour l'attribut "valeur" manuellement:
http://jsfiddle.net/brlgc/4/
Je suppose que c'est la seule solution alors ... Cependant, je suppose que c'est un peu plus délicieux avec des boutons radio et des cases à cocher ...
Solution mise à jour pour les radios et les cases à cocher. Même principe, sauf en utilisant l'attribut coché plutôt que la valeur. Bien sûr, c'est désordonné, mais appeler .html () est normalement.
Comme @Tymejv mentionné ci-dessus, Serialize () code> fonctionnera également, ce qui en fait un peu plus propre.
.Sérialize () fournit uniquement des paires de clés / valeur comme une chaîne. Il veut le HTML littéral de la page Web.
J'ai ajouté votre script à un auditeur de changement pour tous mes champs de formulaire
La réponse de Rggraham ne fonctionnait pas pour moi, donc je l'ai modifiée à:
Les œuvres de Lachlan "presque" parfaite. Le problème est que le formulaire est sauvegardé et ensuite restauré, puis sauvegardé la radio et les cases à cocher ne décoquent pas et ne conservent plutôt que la composition. Fix simple ci-dessous.
$("input, select, textarea").each(function () {
var $this = $(this);
if ($this.is("[type='radio']") || $this.is("[type='checkbox']")) {
if ($this.prop("checked")) {
$this.attr("checked", "checked");
} else {
$this.removeAttr("checked");
}
} else {
if ($this.is("select")) {
$this.find(":selected").attr("selected", "selected");
} else {
$this.attr("value", $this.val());
}
}
});
Je ne le crois pas, car les valeurs ne sont jamais définies avec JS, elles viennent de rentrer comme ce qu'elles sont codées en dur. Vous pouvez toujours utiliser
. Sérialiser () code>Parce que vous alertez le HTML actuel ... Ce que vous tapez ne sont pas ajoutés au bâtiment HTML de la page. probablement devra faire une boucle à travers chaque élément, obtenir le code HTML et la valeur et la combiner