Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Cambiar un input mediane otro input, que se repite

Estas en el tema de Cambiar un input mediane otro input, que se repite en el foro de Javascript en Foros del Web. Buenas tardes, Tengo una duda no tengo mucho conocimiento de javascript y lo que quiero hacer seguro me pueden ayudar. Cambiar solo visual la cantidad ...
  #1 (permalink)  
Antiguo 20/07/2015, 12:57
 
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 53
Antigüedad: 12 años
Puntos: 1
Pregunta Cambiar un input mediane otro input, que se repite

Buenas tardes,

Tengo una duda no tengo mucho conocimiento de javascript y lo que quiero hacer seguro me pueden ayudar.

Cambiar solo visual la cantidad de un input mediante un input, funciona bien pero solo agarra el primero, quisiera que de alguna forma no importa la cantidad de los input siempre se multiplique en todas.

De ante mano muchas gracias

Código HTML:
<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
<script language="javascript">
function fAgrega()
{
document.getElementById("Text2").value = document.getElementById("Text1").value*6;
}
</script>

<body>

<input id="Text1" type="text" onkeyup="fAgrega();" />
<input id="Text1" type="text" onkeyup="fAgrega();" />
<input id="Text1" type="text" onkeyup="fAgrega();" />
<input id="Text1" type="text" onkeyup="fAgrega();" />
<input id="Text1" type="text" onkeyup="fAgrega();" />
<br />
<br />
<input id="Text2" type="text" disabled />
<input id="Text2" type="text" disabled />
<input id="Text2" type="text" disabled />
<input id="Text2" type="text" disabled />
<input id="Text2" type="text" disabled />
    
</body>
</html> 
  #2 (permalink)  
Antiguo 20/07/2015, 13:36
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar un input mediane otro input, que se repite

De inicio te digo que el id debe de ser un valor único en todo el documento. Puedes usar clases o nombres los cuales sí pueden repetirse.

Código HTML:
Ver original
  1. <input type = "text" class = "ejemplo" />
  2. <input type = "text" class = "ejemplo" />
  3. <input type = "text" class = "ejemplo" />

Y si deseas que la función afecte a todos los elementos, puedes hacerlo o bien con JavaScript en línea:

Código HTML:
Ver original
  1. <input type = "text" class = "ejemplo" oninput = "fagrega(this)" />

O delegando la función con el método addEventListener (ya no usarías la forma anterior):

Código Javascript:
Ver original
  1. [].forEach.call(document.querySelectorAll(".ejemplo"), function(element){
  2.     element.addEventListener("input", function(){
  3.         //Do stuff
  4.     }, false);
  5. });

Supongo que lo que buscas es que cada <input> oculto tome el valor escrito en la caja equivalente del grupo de arriba, entonces, podrías hacerlo así:

Código HTML:
Ver original
  1. <input type = "text" class = "ingresa" />
  2. <input type = "text" class = "ingresa" />
  3. <input type = "text" class = "ingresa" />
  4.  
  5. <input type = "hidden" class = "guarda" />
  6. <input type = "hidden" class = "guarda" />
  7. <input type = "hidden" class = "guarda" />

Código Javascript:
Ver original
  1. [].forEach.call(document.querySelectorAll(".ingresa"), function(element, index){
  2.     element.addEventListener("input", function(){
  3.         document.querySelectorAll(".guarda")[index].value = this.value;
  4.     }, false);
  5. });

El segundo argumento que puede recibir la llamada de retorno del método forEach es la posición que ocupa el elemento actual en el bucle en el array o conjunto de elementos (en este caso, de nodos) y es ese el valor que utilizo para tomar al <input> oculto equivalente al que estamos ingresando datos.

Saludos

EDITO: Por leer rápido, no me dí cuenta de que lo tienes son cajas de texto inhabilitadas mas no ocultas. De todas formas, funciona igual.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 20/07/2015 a las 13:53 Razón: Error de lectura
  #3 (permalink)  
Antiguo 20/07/2015, 14:33
 
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 53
Antigüedad: 12 años
Puntos: 1
Respuesta: Cambiar un input mediane otro input, que se repite

Hola muchas gracias por tu respuesta pero quede igual, el ejemplo que me diste no hace nada

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.  
  3.     <head>
  4.         <title>TODO supply a title</title>
  5.         <meta charset="UTF-8">
  6.         <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.     </head>
  8.  
  9.  
  10. <input type = "text" class = "ingresa" />
  11. <input type = "text" class = "ingresa" />
  12. <input type = "text" class = "ingresa" />
  13.  <br><br>
  14. <input type = "text" class = "guarda" disabled />
  15. <input type = "text" class = "guarda" disabled />
  16. <input type = "text" class = "guarda" disabled />
  17.    
  18. </body>
  19. </html>

Código Javascript:
Ver original
  1. [].forEach.call(document.querySelectorAll(".ingresa"), function(element, index){
  2.     element.addEventListener("input", function(){
  3.         document.querySelectorAll(".guarda")[index].value = this.value*6;
  4.     }, false);
  5. });
  #4 (permalink)  
Antiguo 20/07/2015, 14:41
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar un input mediane otro input, que se repite

Seguramente colocaste el script en la cabecera del documento, antes de que carguen los elementos de la página, y no al final de esta.

Tienes dos opciones; o colocas el script al final:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.     <title>Ejemplo</title>
  4. </head>
  5.     <!-- Aquí irán los elementos de tu documento -->
  6.     <script type="text/javascript">
  7.         /* Aquí irá el código JavaScript */
  8.     </script>
  9. </body>
  10. </html>

O puedes dejar el script en la cabecera, pero deberás de ejecutarlo al haber cargado el DOM:

Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     /* Aquí irá el script */
  3. }, false);

¿Cuál es la diferencia?

Con la primera forma, el script cargará cuando haya terminado de cargar el modelo de objetos del documento (DOM, los elementos del documento) y su contenido multimedia (fotos, audio, vídeos, si los hubiera), mientras que con la segunda forma, se ejecutará cuando solo haya terminado de cargar el DOM. Tú decides.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 20/07/2015, 14:46
 
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 53
Antigüedad: 12 años
Puntos: 1
Respuesta: Cambiar un input mediane otro input, que se repite

Muchas gracias de verdad, funciona perfecto

Etiquetas: funcion, html, input, repite
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:33.