2010-07-06 6 views
5

J'ai le code HTMLObtenir la valeur du champ caché Jquery?

<input type="hidden" name="conf1" value="7th IEEE/IFIP International Conference on Embedded and Ubiquitous Computing (EUC-09)"> 
    <input type="hidden" name="conf2" value="IEEE International Symposium on Parallel and Distributed Processsing with Applications"> 
    <input type="hidden" name="conf3" value="jkhga"> 
    <input type="hidden" name="conf4" value="test"> 
    <input type="hidden" name="conf5" value="The 3rd International Conference on Adaptive Business Information Systems (ABIS'09)"> 

    <input type="text" name="published"> 

suivant et je suis en train d'obtenir les valeurs des champs cachés dans un tableau en utilisant jquery. Voici ce que j'ai essayé:

var conferences = new Array(); 

     conferences[0] = $('#conf1').val(); 
     conferences[1] =$("[name='conf2']").val(); 
     conferences[2] =$("[name='conf3']").val(); 
     conferences[3] = $("[name='conf4']").val(); 
     conferences[4] =$("[name='conf5']").val();  

Quelqu'un peut-il me diriger sur la façon de les lire?
Merci Essai ci-dessous le code Advance
Dean

Répondre

10

Si vous allez utiliser jQuery, vous pouvez le faire:

var array = $('input:hidden').map(function() { 
    return this.value; 
}).get(); 

.map() itère sur la collecte, et place la valeur de retour dans un objet jQuery.

.get() récupère le tableau à partir de l'objet jQuery.

3
var conferences = []; 

$('input:hidden[name^="conf"]').each(function() { 
    conferences.push($(this).val()); 
}); 
0

.

$(...).attr('value'); 

.attr(...): ne reçoit que la valeur des objets au début (lorsque le html est créé).
.val(): obtient la valeur de la propriété de l'objet qui peut changer plusieurs fois.

+0

S'il vous plaît pensez à modifier votre réponse pour expliquer whay '.val()' ne fonctionne pas alors '.attr()' œuvres, afin que les gens puissent mieux comprendre le problème et quand cette solution est applicable. – Djizeus

0

It looks to me like your code works fine already, sauf qu'il n'y a pas #conf1. Tout semble correctement écrit au tableau, et peut être facilement accessible via conferences[0], conferences[1], etc.

Vous pourriez probablement nettoyer avec des trucs jQuery, mais ce que vous avez est fonctionnel, si vous savez que vous n'aurez 5 conférences .

2
var array = $.map($('input:hidden'),function(i) { 
    return i.value; 
}); 

Cela assignera un tableau des valeurs à array et est un peu moins bavard que d'utiliser $(selector).map() qui retourne un objet jQuery que vous avez besoin alors d'appeler get() à retourner un tableau.

Demo Here

1
var conferences = new Array(); // object Array 

var conferencesVal = new Array(); // string Array 

$("[type=hidden]").each(function(i,e){ 

    // object array =>altarnatif method 
    conferences.push({name:$(this).attr("id"),value: $(this).val()}); 

    //string array 
    conferencesVal[i]= $(this).val(); 

}) 
Questions connexes