Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/09/2006, 04:07
gaspampera
 
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();
}

}