Foros del Web » Programando para Internet » Javascript »

Ayuda con Javascript

Estas en el tema de Ayuda con Javascript en el foro de Javascript en Foros del Web. Tengo la siguiente funcion en javascript... es un .js lo que necesito es saber como programar el html para que funcione ese javascript!! este es ...
  #1 (permalink)  
Antiguo 14/11/2009, 01:04
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
Exclamación Ayuda con Javascript

Tengo la siguiente funcion en javascript... es un .js lo que necesito es saber como programar el html para que funcione ese javascript!!

este es el codigo

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;
  13.  
  14.  
  15.  function calcular( numero, pago ){
  16.     var cifras = numero.substr( numero.length - 2 );
  17.     var fecha = vencimiento(cifras);
  18.     var hoy = new Date();
  19.     var dia = hoy.getDate();
  20.     var esteMes = hoy.getMonth();
  21.     var sgteMes = 0;
  22.     var esteAno = hoy.getFullYear();
  23.     var sgteAno = 0;
  24.     if(dia > fecha){
  25.         if(esteMes == 11){
  26.             sgteMes = 0;
  27.             sgteAno = esteAno + 1;
  28.         }else{
  29.             sgteMes = esteMes + 1;
  30.             sgteAno = esteAno;
  31.         }
  32.         }else{
  33.         sgteMes = esteMes;
  34.         sgteAno = esteAno;        
  35.     }
  36.     var fechaVenc = new Date();
  37.     fechaVenc.setFullYear(sgteAno);
  38.     fechaVenc.setMonth(sgteMes);
  39.     fechaVenc.setDate(fecha);
  40.     var diasFaltan = fechaVenc.valueOf() - hoy.valueOf();
  41.     diasFaltan = diasFaltan / (1000 * 60 * 60 * 24);
  42.     var faltaPagar = pago / 30 * parseInt(diasFaltan);
  43.         alert(parseInt(faltaPagar));
  44.     }
  45. function vencimiento(cifras){
  46.  return vencimientos[cifras];
  47. }

No se mucho de javascript.. seguro para muchos de ustedes al solo ojearlo sabran que forms o textarea o input hay que colocar y con que id para que funcione
  #2 (permalink)  
Antiguo 14/11/2009, 08:13
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda con Javascript

No necesita ningún textarea o input. Lo único que tienes que hacer es llamar a la función calcular() con los valores con que quieras realizar las operaciones.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 14/11/2009, 11:17
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: Ayuda con Javascript

Disculpa mi ignorancia, pero a ver si entendí...

debo llamar a la función calcular ("numero", pago) pero... soy muy bruto para este tema... y no se como se hace... y yo quisiera que fuese posible colocar por ejemplo en un html valores predeterminados y un input para colocar el numero... y que luego al darle click a un botón me imagino que es el que se encargara de decir OnClick=("numero", pago)

a ver si me explico un poco mejor...

sera posible colocar un dos input de tipo texto para introducir los valores "numero" y los valores "pago"

Y luego un botón que sustituya los valores antes colocados para llamar a la función calcular ("numero", pago)

Yo intente esto y no me funciono.. aca el html

Código html:
Ver original
  1.     <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  2.     <title>Calcular</title>
  3.     <script type="text/javascript" src="funcion.js" charset="utf-8"></script>
  4. </head>
  5. <body id="fraccionador" onload="">
  6.    
  7.     <form action="calcular_submit" method="get" accept-charset="utf-8">
  8.        
  9.     <input type="text" name="numero" value="" id="numero">
  10.     <input type="text" name="pago" value="" id="pago">
  11.     <input type="button" onClick="calcular('numero', pago)" name="calcular"
  12. value="Calcular" id="calcular">
  13.     </form>
  14.    
  15. </body>

y que en el mismo html se coloque o imprima los valores...

¿como ejemplo que podría hacer?

Disculpen que pregunte cosas que quizás para ustedes sean demasiado sencillas pero estoy empezando en esto de programación en javascript y poco a poco voy aprendiendo... les ruego paciencia conmigo!!!
  #4 (permalink)  
Antiguo 14/11/2009, 11:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda con Javascript

Llama a la función así:
Código Javascript:
Ver original
  1. calcular(this.form.numero, this.form.pago);
Así va a tomar los valores de los campos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 14/11/2009, 13:44
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: Ayuda con Javascript

Cita:
Iniciado por David Ver Mensaje
Llama a la función así:
Código Javascript:
Ver original
  1. calcular(this.form.numero, this.form.pago);
Así va a tomar los valores de los campos.
A ver lo intente como dices pero no logro que imprima la funcion...

el codigo que coloque en el html es este... corigeme si me equivoco.

Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. <head>
  3.     <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  4.     <title>Calcular</title>
  5.     <script type="text/javascript" src="fraccionador.js" charset="utf-8"></script>
  6. </head>
  7. <body id="calcular" onload="">
  8.    
  9.     <form>
  10.        
  11.     <input type="text" name="numero" value="" id="numero">
  12.     <input type="text" name="pago" value="" id="pago">
  13.     <input type="button" onClick="calcular(this.form.numero, this.form.pago);" name="calcular" value="Calcular" id="calcular">
  14.     <p></p>
  15.     </form>
  16.    
  17. </body>
  #6 (permalink)  
Antiguo 15/11/2009, 18:36
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
Exclamación Respuesta: Ayuda con Javascript

Por favor alguien que me ayude... se que es sencillo y podran hacerlo con solo mirar...
  #7 (permalink)  
Antiguo 15/11/2009, 19:05
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda con Javascript

a continuacion los siguiente errores:
  • el DOCTYPE esta incompleto.
    Código:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    <head>
    
  • evita usar los nombres de identificadores en el codigo html. ¿que quiere decir eso? un identificador es un nombre dado a una variable o funcion en javascript. si usas ese mismo nombre para los atributos html como name y id, crea conflicto. el problema que presenta es que en lugar de el codigo referirse a una variable o funcion, este hace referencia al elemento en cuestion que tenga dicho valor en name o ID.
    Código:
    <body id="calcular" onload="">
    ...
    <input type="button" onClick="calcular(this.form.numero, this.form.pago);" name="calcular" id="calcular" value="Calcular" />
    
  • los valores pasados a la funcion tienen que ir a la par con el tipo de valor que opera la funcion. en este caso estas pasando a la funcion las referencias de dos elementos en lugar del valor que estos contienen.
    Código:
    <input type="button" onClick="calcular(this.form.numero, this.form.pago);" name="calcular" id="calcular" value="Calcular" />
    
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 15/11/2009 a las 19:20
  #8 (permalink)  
Antiguo 15/11/2009, 22:10
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
Exclamación Respuesta: Ayuda con Javascript

y entonces cual seria el codigo para uno funcionando... no logro entender les recuerdo que soy nuevo...

a ver si entiendo lo de:

no colocarles los mismos ID a los elementos ya que crea conflictos...

lo que falta del DOCTYPE no me lo deja poner el foro segun por que debo tenar mas de 1 mes!!

luego seguí tus consejos añadiendo el .value al botón... sin embargo no logro hacer que funcione por ningún motivo

este es el codigo:

Código html:
Ver original
  1. <input type="button" onClick="calcular(formObj.num.value, formObj.pag.value);" value="Calcular">

sin embargo aun no me funciona!!!

que me falta no logro entender!!!
  #9 (permalink)  
Antiguo 15/11/2009, 22:24
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda con Javascript

no entiendo porque cambiastes la porcion en rojo,
Código:
<input type="button" onClick="calcular(formObj.num.value, formObj.pag.value);" value="Calcular">
lo unico que tenias que hacer era agregar al final de cada parametro .value. por otro lado, por si te es util, http://www.librosweb.es/javascript/index.html. por algun lugar tienes que comenzar porque imaginate! lo que quise decir en el segundo punto es que tienes que tienes que eliminar esos valores o cambiarlos por otros.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #10 (permalink)  
Antiguo 15/11/2009, 23:03
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: Ayuda con Javascript

a ver hago todo lo que tu dices... pero no me funciona!!!!

le doy al boton y no pasa nada!!

que esta mal?

Código html:
Ver original
  1.    
  2.     <form>  
  3.    <p><input type="text" value="" id="num"></p>
  4.    <p><input type="text" value="" id="pag"></p>
  5.    <p><input type="button" onClick="calcular(formObj.num.value, formObj.pag.value);" value="Calcular"></p>
  6.     </form>
  7.    
  8. </body>


Podrias probarlo..?? quizas no funcione por que hay algo mal en el javascript o no se!!
  #11 (permalink)  
Antiguo 15/11/2009, 23:16
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda con Javascript

repito, no se que te ha dado con cambiar todo el codigo. esta vez no te funciona por lo siguiente:
  • no se sabe a que hace referencia formObj. es decir, formObj no esta definido en el codigo javascript. borra Obj.
    Código:
    <input type="button" onClick="calcular(formObj.num.value, formObj.pag.value);" value="Calcular">
    
  • aun no te funcionara luego de lo anterior porque esta vez haz cambiado el atributo de los elementos INPUTs. es decir, ahora tienen ID en lugar de name. cambia el atributo por name.
    Código:
       <p><input type="text" value="" id="num"></p>
       <p><input type="text" value="" id="pag"></p>
    
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #12 (permalink)  
Antiguo 15/11/2009, 23:35
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
Exclamación Respuesta: Ayuda con Javascript

es que lo he intentado de todas las maneras posibles... por eso intente hacer el html nuevamente...

actualmente sin doctype etc lo tengo asi

Código html:
Ver original
  1.     <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  2.     <title>Calcular</title>
  3.     <script type="text/javascript" src="fraccionador.js" charset="utf-8"></script>
  4. </head>
  5.    
  6.     <form>
  7.        
  8.     <input type="text" value="" name="num">
  9.     <input type="text" value="" name="pag">
  10.     <input type="button" onClick="calcular(form.num.value, form.pag.value);" value="Calcular">
  11.     <p></p>
  12.     </form>
  13.    
  14. </body>

Y por nada del mundo logro que me diga el resultado.
  #13 (permalink)  
Antiguo 15/11/2009, 23:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda con Javascript

bien, supone que ahora al menos te muestre un cartel (una ventana alert). significa que ahora el codigo como tal esta funcionando y no hay ningun error a nivel de codigo. ahora bien, ¿cual es el resultado que debe mostrar? me estas dando la impresion que ni siquiera sabes que tipo de informacion debes entrar en los campos. del lugar donde sacastes el codigo, ¿indicaba que informacion debes entrar en los campos? o sea, para que funcione el codigo necesitas llenar los campos con una informacion. ¿cual es? no lo se porque aun no he analizado el codigo javascript.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 16/11/2009 a las 00:05
  #14 (permalink)  
Antiguo 16/11/2009, 05:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda con Javascript

Diría yo que sigue habiendo error porque debería this.form en lugar de sólo form (ya que el formulario no tiene name)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #15 (permalink)  
Antiguo 16/11/2009, 12:02
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 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?
  #16 (permalink)  
Antiguo 16/11/2009, 15:31
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda con Javascript

bien, a ver si le damos fin a este tema.
Cita:
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.
lo que realmente te quiso decir la persona fue que cuando pases los valores a la funcion, el primer parametro debe ser un string, de ahi que te mencionara entre comillas. puede ser comillas simples o dobles ya que ambas indican un string. la razon es porque asi es como esta escrito en el array de vencimientos. fijate la porcion en rojo...
Código:
 vencimientos["00"] = 02;
 vencimientos["01"] = 02;
 vencimientos["02"] = 02;
 ...
las instrucciones son cierta siempre y cuando invocaras la funcion directamente desde javascript pasandole tu mismo los valores. es decir, digamos que en alguna parte del codigo javascript tengo lo siguiente. de nuevo, fijate en la porcion color rojo.
Código:
calcular('03', 387);
o sea, lo importante es que el tipo de valor sea un string. ahora bien, en tu caso no tienes que estrictamente incluir las comillas para delimitar string porque los valores de los controles de formularios, por ejemplo los campos textbox, siempre son del tipo string. de modo que con solo pasar la propiedad value de los campos es suficiente, tal como lo tienes en tu codigo.
Código:
<input ... onClick="calcular(this.form.num.value, this.form.pag.value);" />
// propiedad value son de tipo string;
de momento no tienes que hacerle nada mas a tu codigo, pero debes tener cuidado lo que escribes en el primer textbox. pues tiene que ser una cifra igual a como se define los elementos del array vencimiento. es decir, si volvemos al codigo anterior de vencimientos, donde los numeros estan marcados en rojo, cada elemento se compone de dos digitos: 01, 02, 03, 04, ..., 09, 10. asi es como se tiene que escribir en el primer textbox.

Cita:
Iniciado por David Ver Mensaje
Diría yo que sigue habiendo error porque debería this.form en lugar de sólo form (ya que el formulario no tiene name)
hola David, no es del todo cierto lo que citas. la explicacion esta en el mecanismo de resolucion de conflictos en identificadores. de momento no lo voy a discutir aqui para no confundir al autor de este tema.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #17 (permalink)  
Antiguo 16/11/2009, 17:56
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda con Javascript

Cita:
Iniciado por zerokilled Ver Mensaje
hola David, no es del todo cierto lo que citas. la explicacion esta en el mecanismo de resolucion de conflictos en identificadores. de momento no lo voy a discutir aqui para no confundir al autor de este tema.
Tienes toda la razón, no me había percatado en ese detalle. Gracias por la corrección.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #18 (permalink)  
Antiguo 17/11/2009, 11:43
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
Exclamación Respuesta: Ayuda con Javascript

Gracias por toda esa explicación, ya entiendo mas de javascript y ya se como funciona el código, pero sigue sin funcionar!!!

Lo habeis probado?
  #19 (permalink)  
Antiguo 17/11/2009, 19:55
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda con Javascript

si, lo he comprobado y me funciona. de lo contrario no hubiera dado las indicaciones ni las explicaciones.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #20 (permalink)  
Antiguo 17/11/2009, 21:25
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
Exclamación Respuesta: Ayuda con Javascript

entonces por q a mi no me funciona... podrias pasarme tu HTML aun el mio tiene algo mal y no logro que funcione!!
  #21 (permalink)  
Antiguo 17/11/2009, 21:36
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda con Javascript

estoy usando exactamente el ultimo codigo que mostraste, no le hice ningun cambio. capaz que estas introduciendo mal los numeros en los campos. en ambos campos solo tienes que introducir numeros, pero en el primero tienes que introducir dos digitos en el rango de 01 a 10.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #22 (permalink)  
Antiguo 19/11/2009, 11:28
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
Exclamación Respuesta: Ayuda con Javascript

ami mi me aparece error en la pagina, usando internet explorer 8 con Mozilla Firefox 3 al igual que con Google Chrome al darle clic al botón donde llamo a la función, no hace absolutamente nada... tal como un botón vacío.

Por que sera esto?
  #23 (permalink)  
Antiguo 19/11/2009, 12:07
 
Fecha de Ingreso: enero-2008
Ubicación: Málaga - España
Mensajes: 346
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Ayuda con Javascript

Corroboro que en IE8 funciona correctamente.
Te paso el fichero, comprueba que lo tengas igual.

Código htm:
Ver original
  1. <html>
  2. <head>
  3. <script>
  4. var fechaVenc = vencimientos = new Array();
  5.  vencimientos["00"] = 02;
  6.  vencimientos["01"] = 02;
  7.  vencimientos["02"] = 02;
  8.  vencimientos["03"] = 02;
  9.  vencimientos["04"] = 03;
  10.  vencimientos["05"] = 03;
  11.  vencimientos["06"] = 03;
  12.  vencimientos["07"] = 03;
  13.  vencimientos["08"] = 04;
  14.  vencimientos["09"] = 04;
  15.  vencimientos["10"] = 04;
  16.  
  17. function calcular( numero, pago ){
  18.     var cifras = numero.substr( numero.length - 2 );
  19.     var fecha = vencimiento(cifras);
  20.     var hoy = new Date();
  21.     var dia = hoy.getDate();
  22.     var esteMes = hoy.getMonth();
  23.     var sgteMes = 0;
  24.     var esteAno = hoy.getFullYear();
  25.     var sgteAno = 0;
  26.     if(dia > fecha){
  27.         if(esteMes == 11){
  28.             sgteMes = 0;
  29.             sgteAno = esteAno + 1;
  30.         }else{
  31.             sgteMes = esteMes + 1;
  32.             sgteAno = esteAno;
  33.         }
  34.         }else{
  35.         sgteMes = esteMes;
  36.         sgteAno = esteAno;        
  37.     }
  38.     var fechaVenc = new Date();
  39.     fechaVenc.setFullYear(sgteAno);
  40.     fechaVenc.setMonth(sgteMes);
  41.     fechaVenc.setDate(fecha);
  42.     var diasFaltan = fechaVenc.valueOf() - hoy.valueOf();
  43.     diasFaltan = diasFaltan / (1000 * 60 * 60 * 24);
  44.     var faltaPagar = pago / 30 * parseInt(diasFaltan);
  45.         alert(parseInt(faltaPagar));
  46.     }
  47. function vencimiento(cifras){
  48.  return vencimientos[cifras];
  49. }
  50. </script>
  51. </head>
  52. <body>
  53.     <form>  
  54.    <p><input type="text" value="" name="num">
  55.     <input type="text" value="" name="pag">
  56.     <input type="button" onClick="calcular(this.form.num.value, this.form.pag.value);" value="Calcular">
  57.     </p>
  58.     </form>
  59.  
  60. </body>
  61. </html>
  #24 (permalink)  
Antiguo 20/11/2009, 15:16
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
De acuerdo Respuesta: Ayuda con Javascript

Gracias asi me ha funcionado

Última edición por mijailrv; 20/01/2010 a las 06:31
  #25 (permalink)  
Antiguo 20/01/2010, 06:47
Avatar de mijailrv  
Fecha de Ingreso: noviembre-2009
Ubicación: <head> AQUI </head>
Mensajes: 145
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: Ayuda con Javascript

Ahora tengo el siguiente problema, resulta que si son números bajos no me muestra los decimales, no se como hacer el javascript para que me muestre los decimales...

Ademas me interesaría mas que en vez de un mensaje emergente, me apareciera en un Input el monto

Y el script tiene errores, para el calculo, no se que esta mal.

Se supone que debería hacer esto:

[Calcular la fecha de actual] + [Luego según el numero se verifica el vencimiento] + [Ahora se cuentan los días que faltan desde la fecha actual hasta el vencimiento según el numero (Contando desde el dia de hoy)] Luego con el valor pago se debería realizar el siguiente calculo:

[FaltaPagar]= ([Pago]/30)x[DiasQueFaltan]

No se por que pero no me da el mismo resultado haciendo el calculo manual.
Ojo la fecha final no debería contarse el ultimo día

es decir: por ejemplo el vencimiento es el día 16 de cada mes y faltan 14 días para el 16 contando desde hoy es decir que es 2 en ese caso el valor real es 1 ya que no se cuenta el ultimo día

Ahora bien me imagino que este seria otro error creo que no supe colocar que el calculo se haga cn aquellos meses que tienen mas de 30 dias tambien, es decir entre en 8 de febrero y el 8 de marzo hay 20 dias y no 30

Entonces no se que hacer ayudenme!!!
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 09:43.