2010-07-06 25 views
5

Ho il seguente codice HTMLOttieni il valore del campo nascosto 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"> 

e sto cercando di ottenere i valori dei campi nascosti a un array usando jQuery. Ecco quello che ho provato:

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();  

Qualcuno mi può indirizzare su come leggere loro?
Grazie in anticipo
Dean

risposta

10

Se avete intenzione di utilizzare jQuery, si può fare questo:

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

.map() itera sulla raccolta, e pone il valore restituito in un oggetto jQuery.

.get() recupera la matrice dall'oggetto jQuery.

3
var conferences = []; 

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

Prova sotto il codice.

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

.attr(...): sta ottenendo solo il valore degli oggetti alla partenza (quando viene creato il html).
.val(): sta ottenendo il valore della proprietà dell'oggetto che può cambiare molte volte.

+0

perche non modifica la risposta per spiegare whay '.VAL()' non ha funzionato, mentre '.attr()' opere, in modo che la gente possa capire meglio il problema e quando questa soluzione è applicabile. – Djizeus

0

It looks to me like your code works fine already, salvo che non v'è alcun #conf1. Tutto sembra scritto correttamente alla matrice, e può essere facilmente accessibili tramite conferences[0], conferences[1], ecc

Si potrebbe probabilmente pulirlo con trucchi jQuery, ma quello che hai è funzionale, se si sa che si avrà solo 5 conferenze .

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

Questo assegna una matrice dei valori da array e è leggermente meno corto di utilizzare $(selector).map() che restituisce un oggetto jQuery che è quindi necessario chiamare get() a restituire una matrice.

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(); 

}) 
Problemi correlati