Foros del Web » Programando para Internet » Jquery »

Problema con val() en jquery

Estas en el tema de Problema con val() en jquery en el foro de Jquery en Foros del Web. Hola Estoy haciendo un script para sumar el valor de 5 text box, a cada uno de ellos le asigne la misma clase "items", cuando ...
  #1 (permalink)  
Antiguo 26/11/2008, 15:07
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 16 años
Puntos: 19
Problema con val() en jquery

Hola
Estoy haciendo un script para sumar el valor de 5 text box, a cada uno de ellos le asigne la misma clase "items", cuando uso val() para capturar el valor de todos pero este solo captura el valor del primero
[html]
for (i=0;i<=5;i++) {
total_direct=total_direct+$(".items").val()[i];
}
[html]

Segun la ayuda de jquery deberia crearse un array con los valores de cada uno de ellos
docs.jquery.com/Attributes/val#val
  #2 (permalink)  
Antiguo 26/11/2008, 16:19
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con val() en jquery

No, no funciona así.

Los valores múltiples se dan cuando 1 elemento puede tener valores múltiples, como es el caso de un select que permita varias selecciones.

En tu caso el problema está en que los 5 textboxes son 5 elementos distintos cada uno de ellos con 1 valor. Lo que debes hacer es recorrer el array de elementos $(".items") y de cada uno sacar su valor: $($(".items")[i]).val();

O si lo prefieres puedes sustituir todo el bucle entero por:

Código javascript:
Ver original
  1. var total_direct = 0;
  2. $(".items").each(function(i, elemento) {
  3.     total_direct += $(elemento).val();
  4. });

Última edición por venkman; 26/11/2008 a las 18:08 Razón: corrección del código explicada abajo
  #3 (permalink)  
Antiguo 26/11/2008, 17:17
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 16 años
Puntos: 19
Respuesta: Problema con val() en jquery

Gracias por la ayuda, lo he modificado pero me marca este error: "elemento.val is not a function", eso en la linea
Código:
total_direct += elemento.val();
La he subido la pagina, tal vez puedas darle una mirada
http://www.atikalhosting.com/biddoc/
El script se ejecuta cuando apretas el boton "Calculate Total"

Si intento on un bucle for
Código:
for (i=0; i<=10; i++) {
	total_direct += $(".items")[i].val();
}
Marca el error $(".items")[i].val() is not a function

Última edición por XLogus; 26/11/2008 a las 17:29
  #4 (permalink)  
Antiguo 26/11/2008, 18:10
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con val() en jquery

Perdona, error tonto mío. Hay que volver a extender el elemento para que tenga las funcionalidades que le da JQuery. Es decir, que hay que usar $(elemento):

Código javascript:
Ver original
  1. var total_direct = 0;
  2. $(".items").each(function(i, elemento) {
  3.     total_direct += $(elemento).val();
  4. });
  #5 (permalink)  
Antiguo 27/11/2008, 07:17
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 16 años
Puntos: 19
Respuesta: Problema con val() en jquery

Tengo la impresion que has copiado el mismo codigo de anterior en este segundo post
Gracias, ya encontre la solucion:
Código:
var total_direct = 0;
	$('.items').each(function () {
	total_direct += Number($(this).val());
});
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:36.