Foros del Web » Programando para Internet » Javascript »

llamada a una funcion javascript

Estas en el tema de llamada a una funcion javascript en el foro de Javascript en Foros del Web. tengo un script Javascript) que a medida que se introducen importes se va actualizando los importes mediante el evento onblur="calcular()", el caso es que si ...
  #1 (permalink)  
Antiguo 24/05/2007, 10:50
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
llamada a una funcion javascript

tengo un script Javascript) que a medida que se introducen importes se va actualizando los importes mediante el evento onblur="calcular()",
el caso es que si me hace intro sin pulsar el tab para ir a siguiente campo el evento onblur del campo donde esta sitaudo el cursor no lo ejecuta con lo que cuando grabo en el fichero los valores no estan actualizados.
apuesto por las soluciones
1- utilizar un evento que seguro siempre se ejecute, incluso si se pulsa intro para validar el form.
2.- poner en el evento onsubmit del form una llamada a la funcion del calculo
3.- crear otra funcion que calcule de nuevo antes de realiza el insert

pero para la opcion:
1- no se que evento debo utilizar
2- en el onsubmit ya realizo una funcion de validar el form, puedo poner otra?
3- es una lata pq cada vez que canvie algun càlculo debo recordar de cambiarlo en las dos funciones, i quizas los redondeos no me den los mismos importes exactos

que me aconsejais i como llamo realizo las llamadas en cada caso?
gracias
  #2 (permalink)  
Antiguo 24/05/2007, 12:06
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: llamada a una funcion javascript

En el onsubmit siempre puedes llamar a dos funciones: onsubmit="f1(); f2()" pero te aconsejo que aúnes los códigos de las dos funciones en uno, será más fácil de editar y de leer.

Yo utilizaría el evento onsubmit para calcular todos los cálculos que te sean necesarios, así te aseguras que queden calculados a la hora de enviar el formulario.

Si quieres que el usuario vea el cambio que se realiza en el campo (supongo que es así, por eso has utilizado onblur) puedes seguir utilizando onblur para calcular, pero utilizando algún tipo de variable o atributo HTML auxiliar para "marcar" que un campo ha sido calculado. Luego en el onsubmit miras a ver si todos han sido calculados, y calculas los que queden por calcular, así nunca tendrás errores.

Por cierto ¿que pasa si el evento onblur se ejecuta dos veces? ¿Se queda el mismo valor o es tipo de sumar un 16% de impuesto? Piensa que con la variable auxiliar sólo actualizarías una vez (también si el campo cambia de valor... todo ello hay que tenerlo en cuenta y ponerle remedio).


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 25/05/2007, 01:00
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
Re: llamada a una funcion javascript

gracias,
como cada valor que entro implica recalcular todos los valores no tengo problema con acumular el doble .
  #4 (permalink)  
Antiguo 25/05/2007, 04:32
 
Fecha de Ingreso: mayo-2007
Mensajes: 21
Antigüedad: 17 años
Puntos: 0
Re: llamada a una funcion javascript

utiliza el evento onKeyUp o el onKeyDown dentro del input o table

onKeyUp='CalculaImporte(event,this);'

luego en la funcion
function CalculaImporte(e,ctexto){
if((window.event ? e.keyCode : e.which)=='13' && ctexto.value.length==6){ //si presiona el (enter) y hay 6 caracteres hace la suma.
suma=ctexto.value+100;
}
}

estos eventos funcionan bien en ie y firefox

un saludo
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:12.