Foros del Web » Programando para Internet » Javascript »

Contenido de checkbox en Javascript

Estas en el tema de Contenido de checkbox en Javascript en el foro de Javascript en Foros del Web. Hola. Estoy dando mis primeros pasos con el Java y tengo un problema que es el siguiente. 1.- En una página ASP tengo un checkbox ...
  #1 (permalink)  
Antiguo 11/09/2006, 11:04
 
Fecha de Ingreso: diciembre-2004
Mensajes: 44
Antigüedad: 19 años, 5 meses
Puntos: 0
Contenido de checkbox en Javascript

Hola. Estoy dando mis primeros pasos con el Java y tengo un problema que es el siguiente.

1.- En una página ASP tengo un checkbox de clientes.
2.- Antes de enviar al XML (información al servidor) necesito chequear cuales de estos clientes tienen deudas pendientes.
3.- Para ello el checkbox lo recibo en una funcion Javascript de la siguiente manera:
var is_clientes = document.fr_principal.txt_cliente_codigo;
4.- Y por otro lado tengo los clientes con deudas guardados en una variable que se llama:
5.- Mi idea es recorrer la variable is_clientes en tramos de 10 en 10 (que es la longitud del codigo de cliente) y con cada código buscar si tiene deudas.
6.- No sé como recorrer la variable is_clientes y tampoco tengo claro si la estoy recogiendo adecuamente en la funcion Javascript.
7.- Porfa alguna sugerencia?.

8.- Adjunto el código de la función:
function uf_valida()
{
var is_clientes = document.fr_principal.txt_cliente_codigo;
var is_depositos = document.fr_principal.txt_cliente_deposito.value;
var i;
//* recorremos los clientes *
for (i=0;i<is_clientes.length;i=i+10)
{
//* cliente a tratar */
var is_cli = is_clientes.slice(i,10);
//* posicion del cliente dentro de la lista de depositos */
var is_posicion = is_depositos.indexOf(is_cli);
//* ahora vemos si tiene o no deposito */

if (is_posicion>0)
{
//* ver si o no */
var tiene = is_depositos.slice(is_posicion+10,2);
//* pintamos */
if (tiene.equals('SI'))
{
alert("El cliente '" + is_cli + "' tiene depositos.");
}
}
}
}
Gracias por anticipado.

Última edición por gaspampera; 12/09/2006 a las 00:42
  #2 (permalink)  
Antiguo 11/09/2006, 11:12
Avatar de rock_blues.NET  
Fecha de Ingreso: septiembre-2005
Mensajes: 207
Antigüedad: 18 años, 7 meses
Puntos: 0
podrias ser mas especifico sobre q es lo q necesitas, asi podriamos ayudarte mejor.. sinceramente lei 3 veces el post y no entendi casi nada

saludos
  #3 (permalink)  
Antiguo 12/09/2006, 00:12
 
Fecha de Ingreso: diciembre-2004
Mensajes: 44
Antigüedad: 19 años, 5 meses
Puntos: 0
Siento no haberme explicado mejor, lo que necesito es validar si los clientes seleccionados en un checkbox, tienen pagos pendientes o no. Validando antes de enviar la informacion al servidor.

Entonces lo que necesito es saber como volcar los códigos de cliente seleccionados en el checkbox dentro de una variable de tal forma que pueda recorrer cada uno de los códigos de cliente seleccionados en el checkbox, para comprobar si tienen pagos pendientes o no.

Espero haber aclarado algo.
PD: He modificado el primer mensaje y he añadido el fuente de la función por si se entiende mejor.

Última edición por gaspampera; 12/09/2006 a las 00:43
  #4 (permalink)  
Antiguo 12/09/2006, 17:44
Avatar de rock_blues.NET  
Fecha de Ingreso: septiembre-2005
Mensajes: 207
Antigüedad: 18 años, 7 meses
Puntos: 0
mira puedes inicialmente puedes enviar los datos del cliente, (el id, si tienes pagos o no) en objetos "hidden" y verificar los objetos seleccionados, el problema es q si son demasiados clientes se te podria llenar muxo el form,
creo q es mejor ir al server a buscar la info q necesitas
  #5 (permalink)  
Antiguo 13/09/2006, 04:07
 
Fecha de Ingreso: diciembre-2004
Mensajes: 44
Antigüedad: 19 años, 5 meses
Puntos: 0
Gracias por la respuesta, el problema principalmente era que se me olvidaba poner ".value" para conseguir la informacion de la tabla y que cuando solo hay un cliente hay que hacer un tratamiento distinto porque la longitud del checkbox increiblemente devuelve "undefined" en lugar de 0. (yo erre que erre con mi idea inicial, je, je).

A continuacion pongo la funcion Javascript por si a alguien en un futuro le puede ser de utilidad.

''''' FUNCION QUE VALIDA SI TIENE IMPAGOS UN CLIENTE
'''' Informacion previa importante para entenderlo
''' txt_cliente_codigo es la variable utilizada en el checkbox.
''' txt_cliente_deposito: Viene del xml y lo que tengo son los códigos de cliente que aparecen en pantalla seguidos de "SI" o "NO"
''' La variable ok solo sirve para que aparezca un mensaje de confirmacion para decidir si se desea continuar facturando o no.

function uf_envia()
{
var is_clientes = document.fr_principal.txt_cliente_codigo;
var is_depositos = document.fr_principal.txt_cliente_deposito.value;
var i;
var respuesta;
var ok = "SI"
//* Obtenemos la longitud del checkbox *
var longitud = is_clientes.length;
var tipo = typeof(longitud);

// Cuando el checkbox es de uno la longitud es undefined
if (tipo=='undefined')
{
var is_cli = is_clientes.value;
var is_posicion = is_depositos.indexOf(is_cli);
if (is_posicion>=0)
{
var tiene = is_depositos.substr(is_posicion+10,2);
if (tiene=='SI')
{ok = "NO"}
}
}
else
{
for (i=0;i<longitud;i++)
{
//* cliente a tratar */
var is_cli = is_clientes[i].value;
if (is_clientes(i).checked)
{
var is_posicion = is_depositos.indexOf(is_cli);
//* ahora vemos si tiene o no deposito */
if (is_posicion>=0)
{
//* ver si o no */
var tiene = is_depositos.substr(is_posicion+10,2);
//* pintamos */
if (tiene=='SI')
{
ok = "NO";
alert ("el cliente con deposito es:" + is_cli);
}
}
}
}
}

// Si existen depósitos se pregunta si se desea continuar.
if (ok=='NO')
{ respuesta= confirm ("Clientes con depositos, ¿desea seguir facturando?")}
if (respuesta)
{ok = "SI"}


// Solo continuar en el caso de que no tenga depositos o que teniendolo digamos que adelante
if (ok=='SI')
{
document.fr_principal.submit();
}

}
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 00:12.