Ver Mensaje Individual
  #15 (permalink)  
Antiguo 16/11/2009, 12:02
Avatar de mijailrv
mijailrv
 
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 6 meses
Puntos: 5
Exclamación Respuesta: Ayuda con Javascript

a ver, la función del script es esta: coloco un numero en el input numero, y un monto en el input pago... el script calcula segun la fecha de hoy cuantos dias faltan para para determinada fecha de cobro...

para eso los :

estas son las variables de vencimiento es decir para cada vencimiento vencimientos["numero"] = fecha de vencimiento;
Código javascript:
Ver original
  1. var fechaVenc = vencimientos = new Array();
  2.  vencimientos["00"] = 02;
  3.  vencimientos["01"] = 02;
  4.  vencimientos["02"] = 02;
  5.  vencimientos["03"] = 02;
  6.  vencimientos["04"] = 03;
  7.  vencimientos["05"] = 03;
  8.  vencimientos["06"] = 03;
  9.  vencimientos["07"] = 03;
  10.  vencimientos["08"] = 04;
  11.  vencimientos["09"] = 04;
  12.  vencimientos["10"] = 04;

y la función calcular que simplemente agarra el valor de la fecha de vencimiento y calcula los números de días que va faltan para llegar a ese día luego conociendo el numero de días que falta, realiza un calculo simple con otro valor que es agregado en el campo "pago".

luego el script hace lo siguiente:

("PAGO"/30)*(Días que Faltan)

la única instrucción que me dejo el que me ayudo a hacer el script fue que el valor numero debía estar siempre entre comillas... cosa que no entiendo mucho.

Código javascript:
Ver original
  1. function calcular( numero, pago ){
  2.     var cifras = numero.substr( numero.length - 2 );
  3.     var fecha = vencimiento(cifras);
  4.     var hoy = new Date();
  5.     var dia = hoy.getDate();
  6.     var esteMes = hoy.getMonth();
  7.     var sgteMes = 0;
  8.     var esteAno = hoy.getFullYear();
  9.     var sgteAno = 0;
  10.     if(dia > fecha){
  11.         if(esteMes == 11){
  12.             sgteMes = 0;
  13.             sgteAno = esteAno + 1;
  14.         }else{
  15.             sgteMes = esteMes + 1;
  16.             sgteAno = esteAno;
  17.         }
  18.         }else{
  19.         sgteMes = esteMes;
  20.         sgteAno = esteAno;        
  21.     }
  22.     var fechaVenc = new Date();
  23.     fechaVenc.setFullYear(sgteAno);
  24.     fechaVenc.setMonth(sgteMes);
  25.     fechaVenc.setDate(fecha);
  26.     var diasFaltan = fechaVenc.valueOf() - hoy.valueOf();
  27.     diasFaltan = diasFaltan / (1000 * 60 * 60 * 24);
  28.     var faltaPagar = pago / 30 * parseInt(diasFaltan);
  29.         alert(parseInt(faltaPagar));
  30.     }
  31. function vencimiento(cifras){
  32.  return vencimientos[cifras];
  33. }

ahora mi problema es hacerlo funcionar desde un HTML

a lo que he llegado segun los consejos de ustedes es a esto:
(sin de !DOCTYPE, sin HEAD
Código html:
Ver original
  1.    
  2.     <form>  
  3.    <p><input type="text" value="" name="num">
  4.     <input type="text" value="" name="pag">
  5.     <input type="button" onClick="calcular(this.form.num.value, this.form.pag.value);" value="Calcular">
  6.     </p>
  7.     </form>
  8.    
  9. </body>

Realmente no hay ningún error en el script y menos en el HTML solo que no logro hacerlo funcionar.

Alguien podria probar?