Cuando tengas varias funciones que ejecuten instrucciones similares, trata de abstraerlas en una sola función:
Código Javascript
:
Ver originalfunction inc_count(id, x){
var res = document.getElementById(id);
switch (x){
case 1:
res.value = parseInt(res.value) + 1;
break;
case 2:
res.value = parseInt(res.value) + 2;
break;
case 3:
res.value = parseInt(res.value) - 1;
break;
}
res.value = parseInt(res.value)+1;
}
Y cuando invoques a la función en cada elemento:
Código HTML:
Ver original<input class="Boton1" name="a" type="button" value="1" onclick="inc_count('1', 1)" /> <input class="Boton1" name="b" type="button" value="2" onclick="inc_count('1', 2)" /> <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<input class="Boton1" name="a" type="button" value="1" data-x="1" /> <input class="Boton1" name="b" type="button" value="2" data-x="2" /> <input class="Boton1" name="c" type="button" value="-1" data-x="3" />
Código Javascript
:
Ver originaldocument.addEventListener("DOMContentLoaded", function(){
function inc_count(id, x){
var res = document.getElementById(id);
switch (x){
case 1:
res.value = parseInt(res.value) + 1;
break;
case 2:
res.value = parseInt(res.value) + 2;
break;
case 3:
res.value = parseInt(res.value) - 1;
break;
}
res.value = parseInt(res.value)+1;
}
this.addEventListener("click", function(event){
if (event.target.className == "Boton1"){
inc_count("1", event.target.dataset.x);
}
}, false);
}, 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