2010-07-06 43 views
5

Tengo el siguiente código HTMLObtener valor de campo oculto 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"> 

y estoy tratando de obtener los valores de los campos ocultos en un array usando jQuery. Esto es lo que he intentado:

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

¿Alguien puede dirigirme sobre cómo leerlos?
Gracias de antemano
Dean

Respuesta

10

Si vas a usar jQuery, usted puede hacer esto:

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

.map() itera sobre la colección, y coloca el valor de retorno en un objeto jQuery.

.get() recupera la matriz del objeto jQuery.

3
var conferences = []; 

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

Try a continuación código.

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

.attr(...): sólo es cada vez el valor de los objetos en el inicio (cuando se crea el html).
.val(): obtiene el valor de propiedad del objeto que puede cambiar muchas veces.

+0

Considere editar su respuesta para explicar whay '.val()' no funcionó mientras que '.attr()' obras, para que la gente pueda entender mejor el problema y cuando esta solución es aplicable – Djizeus

0

It looks to me like your code works fine already, excepto que no hay #conf1. Todo parece escrita correctamente a la matriz, y se puede acceder fácilmente a través de conferences[0], etc. conferences[1],

Probablemente se podría limpiarlo con trucos de jQuery, pero lo que tiene es funcional, si usted sabe que usted sólo tendrá 5 conferencias .

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

Esto asignará una matriz de los valores a array y es un poco menos detallado que el uso de $(selector).map() que devuelve un objeto jQuery que este caso es necesario llamar get() a devolver una matriz.

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

}) 
Cuestiones relacionadas