buenas,
evidentemente no te va funcionar así. ¿conoces lo que es diseño modular? básicamente es separar cada cosa en componentes más pequeños y que sean reusables. generalmente, la reusabilidad se logra haciendo que ese componente sea genérico. es decir, que no está atado directamente sobre el componente que se aplica. en tu caso, la función
clave siempre hace referencia al mismo campo. una posible solución podría ser enviar en otro parámetro el nombre del campo. luego en el cuerpo de la función haces referencia al campo utilizando ese parámetro.
Código:
function clave(numero, campo){
document.forms['formulario'].elements[campo].value = ... ;
...
}
<element onclick="clave('#', 'nombre_campo');" ... >
aunque se soluciona el problema, aún así se asume que los keypads deben estar dentro del form
formulario. se puede seguir adaptando para hacerlo más genérico y reusable.