Foros del Web » Programando para Internet » Javascript »

Problema para cambiar el valor de un input

Estas en el tema de Problema para cambiar el valor de un input en el foro de Javascript en Foros del Web. hola amigos, tengo un problema para colocar valores 0 en un input despues de click en un botton solo consigo colocarlos en dos inputs @import ...
  #1 (permalink)  
Antiguo 15/04/2014, 15:17
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
Problema para cambiar el valor de un input

hola amigos, tengo un problema para colocar valores 0 en un input despues de click en un botton solo consigo colocarlos en dos inputs

Código HTML:
Ver original
  1. X1<input type="text" id="x1" value="0" class="input"/>Y1<input type="text" id="y1" value="0"/><br/>
  2. X2<input type="text" id="x2" value="0"/>
  3. Y2<input type="text" id="y2" value="0"/>
  4. <input type="button" value="Recalcular" onclick="myFunction()">

Código Javascript:
Ver original
  1. var canvas = document.getElementsByTagName("canvas")[0],
  2.     context = canvas.getContext("2d"),
  3.     cont = 0,
  4.     xIni, yIni,
  5.     xFin, yFin;
  6.    
  7.  
  8. window.addEventListener("click", function(e){
  9.    
  10.     var x;
  11.     var y;
  12.    
  13.     if (e.pageX || e.pageY) {
  14.       x = e.pageX - (e.pageX - e.layerX);
  15.       y = e.pageY - (e.pageY - e.layerY);
  16.      
  17.     }
  18.     else {
  19.       x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
  20.       y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
  21.     }
  22.    
  23.    
  24.     if (++cont % 2 !== 0){      
  25.         xIni = x;
  26.         yIni = y;
  27.         document.getElementById("x1").value = xIni;
  28.         document.getElementById("y1").value = yIni;
  29.     }
  30.     else{
  31.         xFin = x;
  32.         yFin = y;
  33.         document.getElementById("x2").value = xFin;
  34.         document.getElementById("y2").value = yFin;
  35.        
  36.         context.moveTo(xIni, yIni);
  37.         context.lineTo(xFin, yFin);
  38.         context.lineWidth = 2;
  39.         context.strokeStyle = "white";
  40.         context.stroke();
  41.     }
  42. }, false);
  43. function  myFunction() {
  44.      
  45.      document.getElementById("x1").value = 0;
  46.      document.getElementById("y1").value = 0;
  47.      document.getElementById("x2").value = 0;
  48.      document.getElementById("y2").value = 0;
  49.        
  50. }

en q
  #2 (permalink)  
Antiguo 16/04/2014, 05:10
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema para cambiar el valor de un input

el problema está en que los evento en línea se producen antes que los eventos embebidos, por lo tanto primero se ejecuta la función "myFunction()" y después se ejecuta la función anónima asignada a window. para solventarlo, en la función anónima, antes de nada, has de usar una condicional tal que así
Cita:
if (e.target.id == 'rec') { return false;}
siendo "rec" la id del control button
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 16/04/2014, 07:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: Problema para cambiar el valor de un input

IsaBelM gracias por responder, pero se me difulta implementar lo que me indicas

Código HTML:
Ver original
  1. <input type="button" value="Recalcular"  id="recalcular" onclick="myFunction()">

pero no se donde colocar el condicional que me indicas.
  #4 (permalink)  
Antiguo 17/04/2014, 04:19
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema para cambiar el valor de un input

Cita:
Iniciado por IsaBelM Ver Mensaje
el problema está en que los evento en línea se producen antes que los eventos embebidos, por lo tanto primero se ejecuta la función "myFunction()" y después se ejecuta la función anónima asignada a window. para solventarlo, en la función anónima, antes de nada, has de usar una condicional tal que así

siendo "rec" la id del control button
Código:
window.addEventListener("click", function(e){
if (e.target.id == 'rec') { return false;}
........
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: input, valor
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 04:02.