Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Múltiples funciones

Estas en el tema de Múltiples funciones en el foro de Javascript en Foros del Web. Este post no es una pregunta a medias, me explico, lo que vengo a preguntar es que las funciones que he realizado me salen correctamente, ...
  #1 (permalink)  
Antiguo 03/08/2013, 11:05
 
Fecha de Ingreso: junio-2009
Mensajes: 44
Antigüedad: 14 años, 9 meses
Puntos: 1
Múltiples funciones

Este post no es una pregunta a medias, me explico, lo que vengo a preguntar es que las funciones que he realizado me salen correctamente, sin embargo haciéndolas de otra forma no salen cuando creo que deberían de salir, os pongo el código de como debería de funcionar:

Código:
<!-- Ponemos dos checkbox para hacer una suma -->
<input type="checkbox" id="opcion_c1" onclick="recalcular()">80<br>	
<input type="checkbox" id="opcion_t1" onclick="recalcular()">105<br>
<!-- Aquí nos motrara el resultado de las sumas -->
<div id="msgSuma">55</div>	

<script>
     function recalcular(){
          var a = document.getElementById("opcion_c1");
          var b = document.getElementById("opcion_t1");
          var suma = document.getElementById("msgSuma");

/*Si pulsamos el checkbox nos sumara a la cifra del <div> 100 y si los "descheckeamos nos restara la 100. */
          if(a.checked) {
	       suma.innerHTML = parseInt(suma.innerHTML) + parseInt(100);
	  }else{
	       suma.innerHTML = parseInt(suma.innerHTML) - parseInt(100);
	  }

/*Y si pulsamos el segundo checkbox sumamos al <div> 80. Lo mismo que el anterior.*/
          if(b.checked) {
	       suma.innerHTML = parseInt(suma.innerHTML) + parseInt(80);
	  }else{
	       suma.innerHTML = parseInt(suma.innerHTML) - parseInt(80);
	  }
</script>
Y ahora os pongo el código como funciona correctamente, que es el mismo pero puesto en dos <script>.

Código:
<input type="checkbox" id="opcion_c1" onclick="recalcular()">80<br>	
<input type="checkbox" id="opcion_t1" onclick="recalcular()">105<br>

<div id="msgSuma">55</div>	

<script>
      function recalcularA(){
           var a = document.getElementById("opcion_c1");
           var suma = document.getElementById("msgSuma");
           if(b.checked) {
	       suma.innerHTML = parseInt(suma.innerHTML) + parseInt(80);
	   }else{
	       suma.innerHTML = parseInt(suma.innerHTML) - parseInt(80);
	   }
      }
</script>

<script>
      function recalcularB(){
           var b = document.getElementById("opcion_t1");
           var suma = document.getElementById("msgSuma");
           if(b.checked) {
	       suma.innerHTML = parseInt(suma.innerHTML) + parseInt(100);
	   }else{
	       suma.innerHTML = parseInt(suma.innerHTML) - parseInt(100);
	   }
      }
</script>
Y una ultima pregunta ¿porque no funcionan dos funciones en un mismo <script>?

Un saludo.
  #2 (permalink)  
Antiguo 03/08/2013, 13:03
darkhack3r22
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Múltiples funciones

Hola de nuevo. Este es un error MUY común ya que estas realizando dos condicionales if con else, y la segunda, no se ejecuta ya que no puedes hacerlos seguidos. Cuando llegó al else y ejecutó el document.write automaticament detuvo. Es así; entrada y salida. Así que deberías meter el segundo if dentro del else del primero jeje un poco lio.
Por eso en el ultimo codigo si esta bien porque lo has metido en dos funciones independientes. ;)
Te paso el codigo bueno cuando des señal.
  #3 (permalink)  
Antiguo 03/08/2013, 14:17
darkhack3r22
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Múltiples funciones

Por cierto, olvida el post de abajo, que me estaba enparanoiando con otras cosas. El código bueno es este:
Código HTML:
Ver original
  1. <input type="radio" id="opcion_c1" name="opciones" onclick="recalcular()">80<br> <input type="radio" id="opcion_t1" name="opciones" onclick="recalcular()">105<br>
  2.  
  3. <div id="msgSuma">55</div>
  4.  
  5. <script type="text/javascript">
  6. function recalcular(){
  7. var a = document.getElementById("opcion_c1"); var b = document.getElementById("opcion_t1"); var suma = document.getElementById("msgSuma");
  8.  
  9. if(a.checked) {
  10. suma.innerHTML = parseInt(suma.innerHTML) + parseInt(100);
  11. }else{
  12. suma.innerHTML = parseInt(suma.innerHTML) -parseInt(100);
  13. }
  14.  
  15. if(b.checked) {
  16. suma.innerHTML = parseInt(suma.innerHTML) + parseInt(80);
  17. }else{
  18. suma.innerHTML = parseInt(suma.innerHTML) - parseInt(80);
  19. }
  20. }

Muahaha ¿pensabas que este script iba a acabar conmigo?
  #4 (permalink)  
Antiguo 03/08/2013, 14:31
 
Fecha de Ingreso: junio-2009
Mensajes: 44
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Múltiples funciones

Ok, lo capto y supongo que con las funciones pasa lo mismo, cuando se ejecuta el primera no se ejecuta la segunda función en Javascript.

PD: El segundo código me funciona a las mil maravillas, lo probé, me funciono y lo deje jajaja.

Un saludo.
  #5 (permalink)  
Antiguo 04/08/2013, 06:06
darkhack3r22
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Múltiples funciones

Cita:
Iniciado por Lossarnach Ver Mensaje
Ok, lo capto y supongo que con las funciones pasa lo mismo, cuando se ejecuta el primera no se ejecuta la segunda función en Javascript.

PD: El segundo código me funciona a las mil maravillas, lo probé, me funciono y lo deje jajaja.

Un saludo.
No hay problema en que pongas varias funciones o condiciones seguidas, porque en javascript no pasa nada, el error que tenías era un } que se te había olvidado de la funcion recalcular(), pero no es bueno acostumbrarse a hacer eso ya que en otros lenguajes de programacion como PHP si te hace eso y es mucho mas lioso.
Vas muy bien y lo clasificas todo perfectamente, eso es lo importante.Saludos.

Etiquetas: funcion, multiples
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 15:05.