Foros del Web » Programando para Internet » Javascript »

id identificar funcion de script js para que un input la ejecute

Estas en el tema de id identificar funcion de script js para que un input la ejecute en el foro de Javascript en Foros del Web. Tengo este script que he duplicado: <script> function inc_count(id) { res = document.getElementById(id); res.value = parseInt(res.value)+1; } </script> -----------------duplicado +2: <script> function inc_count(id) { res ...
  #1 (permalink)  
Antiguo 15/02/2016, 08:35
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 15 años, 10 meses
Puntos: 0
id identificar funcion de script js para que un input la ejecute

Tengo este script que he duplicado:

<script>
function inc_count(id)
{
res = document.getElementById(id);
res.value = parseInt(res.value)+1;
}
</script>


-----------------duplicado +2:
<script>
function inc_count(id)
{
res = document.getElementById(id);
res.value = parseInt(res.value)+2;
}
</script>


------------------duplicado -1:
<script>
function inc_count(id)
{
res = document.getElementById(id);
res.value = parseInt(res.value)-1;
}
</script>


<form action="" method="">
<input class="Marcador1" type="text" value="0" id="1" size="9"/>
</form>
<div id="column_top1">
<input class="Boton1" Name="a" type=button value=1 onclick="javascript:inc_count('1');">

<input class="Boton1" Name="b" type=button value=2 onclick="javascript:inc_count('1');">



<input class="Boton1" Name="c" type=button value=-1 onclick="javascript:inc_count('1');">




Lo que quiero es que cada input utilice su script.
Hace días que estoy con ello y no veo la manera de que el input se ejecute la función que quiero.

La función es que los input button, sume o reste un valor al input text.

Espero que sea posible y que alguien me pueda ayudar.

Un Saludo.

Muchas gracias por leerme.
  #2 (permalink)  
Antiguo 15/02/2016, 08:45
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 11 meses
Puntos: 15
Respuesta: id identificar funcion de script js para que un input la ejecute

Primero que nada, no puedes tener 3 funciones llamadas de igual manera... al menos deberías pasarle una cantidad de parámetros distintos...

Segundo, puedes usar la etiqueta ID en los input y luego en js obtener ese ID Algo así

Tercero.. para usar onclick basta solo con que pongas

Código Javascript:
Ver original
  1. onclick="inc_count1('1');"



Tu código quedaría así:

Código HTML:
Ver original
  1. <form action="" method="">
  2. <input class="Marcador1" type="text" value="0" id="1" size="9"/>
  3. </form>
  4. <div id="column_top1">
  5. <input class="Boton1" Name="a" type=button value=1 onclick="inc_count1('1');">
  6.  
  7. <input class="Boton1" Name="b" type=button value=2 onclick="inc_count2('1');">
  8.  
  9. <input class="Boton1" Name="c" type=button value=-1 onclick="inc_count3('1');">

Código Javascript:
Ver original
  1. function inc_count1(id)
  2. {
  3. res = document.getElementById(id);
  4. res.value = parseInt(res.value)+1;
  5. }
  6.  
  7. function inc_count2(id)
  8. {
  9. res = document.getElementById(id);
  10. res.value = parseInt(res.value)+2;
  11. }
  12.  
  13. function inc_count3(id)
  14. {
  15. res = document.getElementById(id);
  16. res.value = parseInt(res.value)-1;
  17. }
  #3 (permalink)  
Antiguo 15/02/2016, 12:55
Avatar de jearj  
Fecha de Ingreso: julio-2008
Mensajes: 72
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: id identificar funcion de script js para que un input la ejecute

Muchas gracias ZedGe1505.

Me has salvado

Tu modificación funciona perfectamente, por eso os admiro tanto a los de este foro
La verdad que yo aun estoy muy verde con los .js intentare ponerle mas atención.

Un Saludo a todos.
  #4 (permalink)  
Antiguo 15/02/2016, 13:29
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: id identificar funcion de script js para que un input la ejecute

Cuando tengas varias funciones que ejecuten instrucciones similares, trata de abstraerlas en una sola función:
Código Javascript:
Ver original
  1. function inc_count(id, x){
  2.     var res = document.getElementById(id);
  3.     switch (x){
  4.         case 1:
  5.             res.value = parseInt(res.value) + 1;
  6.             break;
  7.         case 2:
  8.             res.value = parseInt(res.value) + 2;
  9.             break;
  10.         case 3:
  11.             res.value = parseInt(res.value) - 1;
  12.             break;
  13.     }
  14.     res.value = parseInt(res.value)+1;
  15. }

Y cuando invoques a la función en cada elemento:
Código HTML:
Ver original
  1. <input class="Boton1" name="a" type="button" value="1" onclick="inc_count('1', 1)" />
  2. <input class="Boton1" name="b" type="button" value="2" onclick="inc_count('1', 2)" />
  3. <input class="Boton1" name="c" type="button" value="-1" onclick="inc_count('1', 3)" />

Y, como consejo final, cuando trabajes con JavaScript, procura hacerlo en un archivo JS externo y no inline, es decir, incrustado en los elementos HTML.

¿Cómo podrías hacer eso?
Código HTML:
Ver original
  1. <input class="Boton1" name="a" type="button" value="1" data-x="1" />
  2. <input class="Boton1" name="b" type="button" value="2" data-x="2" />
  3. <input class="Boton1" name="c" type="button" value="-1" data-x="3" />
Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     function inc_count(id, x){
  3.         var res = document.getElementById(id);
  4.         switch (x){
  5.             case 1:
  6.                 res.value = parseInt(res.value) + 1;
  7.                 break;
  8.             case 2:
  9.                 res.value = parseInt(res.value) + 2;
  10.                 break;
  11.             case 3:
  12.                 res.value = parseInt(res.value) - 1;
  13.                 break;
  14.         }
  15.         res.value = parseInt(res.value)+1;
  16.     }
  17.  
  18.     this.addEventListener("click", function(event){
  19.         if (event.target.className == "Boton1"){
  20.             inc_count("1", event.target.dataset.x);
  21.         }
  22.     }, false);
  23. }, false);

El código JS se ejecutará una vez que el documento haya cargado. Cuando se detecte un clic en el mismo, se verificará que el elemento directamente afectado por el clic posea como clase al valor "Boton1"; de ser así, se realizará la llamada a la función "inc_count()", pasándole como argumentos el identificador del elemento de salida y el valor del atributo personalizado "x" que añadí a cada botón y en donde se especifica el caso a llevar a cabo.

Un saludo
__________________
«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; 15/02/2016 a las 13:46 Razón: Autocierre

Etiquetas: funcion, input, js, 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 18:08.