2010-02-23 4 views
3

J'ai une page de produit dans laquelle si l'utilisateur clique sur modifier, une fenêtre de formulaire de superposition est remplie pour la rendre modifiable.

Une fois l'édition terminée et l'utilisateur cliqua sur Soumettre, je souhaite mettre à jour le text() de chaque champ du produit qui a été modifié.

Ainsi, au lieu d'obtenir la valeur de chaque champ d'entrée et la mise à jour est-il un moyen que je peux utiliser $(this).serialize() comme un tableau

solution actuelle, je pense est:

var name = $("#input_name").val(); 
$("#name_id").innerhtml(name); 

Mais le problème est qu'il ya Il y a beaucoup de champs, et je voulais utiliser la puissance de jQuery, au lieu de saisir manuellement la valeur de chaque champ d'entrée.

Répondre

2

Eh bien, il faut que ce soit une façon de relier les éléments d'entrée aux éléments de texte (les travées? Divs?) Que vous souhaitez mettre à jour. Cela peut être par une convention de dénomination, ou par un crochet explicite dans les noms de classe de champ d'entrée. Une fois que cette convention est établie, il devrait être assez facile de parcourir les champs du formulaire et de mettre à jour le texte.

Ainsi, par exemple, si les zones de texte sont <span> balises dont « id » valeur est le nom du champ d'entrée ainsi que le suffixe « _TEXT », alors vous pourriez faire quelque chose comme ceci:

$('#theFormId input:text').each(function() { 
    $('span#' + $(this).attr('name') + '_text').text($(this).val()); 
}); 

Il y a environ un milliard de variations possibles bien sûr.

3

Consultez la méthode serializeArray.

var array = $('#someForm').serializeArray(); 
+1

Très bien, je ne savais pas que c'était possible. +1 – Erik

Questions connexes