2009-09-02 6 views
0

J'ai une liste dynamique d'éléments qui seront utilisés pour envoyer des informations au backend en utilisant AJAX.Extraire des informations de la liste dynamique pour les publier avec jQuery?

<a href="...">Item 1</a> 
<a href="...">Item 2</a> 
<a href="...">.....</a> 
<a href="...">Item n</a> 

J'ai décidé d'inclure une classe css et une entrée cachée sur chaque élément afin que je puisse facilement affecter le gestionnaire (en utilisant la classe css) et pour que je puisse connaître l'ID de l'élément (en utilisant le champ caché).

<a href="..." class="recorditem"><input type="hidden" value="1" name="ItemID"/>Item 1</a> 
<a href="..." class="recorditem"><input type="hidden" value="2" name="ItemID"/>Item 2</a> 
... 
<a href="..." class="recorditem"><input type="hidden" value="n" name="ItemID"/>Item n</a> 

Puis, avec jQuery, je vais intercepter le clic sur le lien (qui passerait à une page pour les utilisateurs non-javascript) pour faire un POST. Donc, il ressemblera à quelque chose comme ceci:

$("a.recorditem").click(function(){ 
     //get the item ID 
     var itemID = $(this + " :input[name='ItemID']").val(); <-- PROBLEM 

     //build a form dynamically - omitted for readability 
     var formToAdd = "<input type='text'.... " 
     //etc etc... 
    }); 

Sauf, je ne peux pas pour la vie de me comprendre comment extraire la valeur du champ d'entrée cachée du lien dans.

Que fais-je incorrectement? Mieux encore, est-ce une façon intelligente de le faire pour une liste dynamique?

Répondre

2

Vous ne savez pas si une entrée cachée est valide dans une ancre (W3c) ... jamais essayé.

Est-ce que le travail follwoing

var itemID = $(this).children().eq(0).val(); 
+0

Il fonctionne. Moi non plus, je ne suis pas sûr que ce soit valable dans une ancre. (Je suis en train d'écrire quelques tests grossiers dans le bloc-notes). Y at-il une meilleure façon de gérer cette situation, comme dans, où puis-je placer l'ID de l'élément dont j'ai besoin? – MunkiPhD

+0

vous pouvez utiliser un attribut de données html5 sur l'ancre elle-même – redsquare

+0

voir http://ejohn.org/blog/html-5-data-attributes/ pour plus d'informations – redsquare

Questions connexes