Antonito:
Daniel está completamento en lo cierto.
Además, en tu función, estás concatenando, no sumando, los valores de
kk y
kk1. No sé si eso es correcto, si no lo es... debes aplicar la función
parseInt() a los valores de entrada.
Por lo demás, la lógica de tu función parece correcta, pero ya que lo que intentas hacer es un típico algoritmo que también
se puede plantear como recursivo, he preferido rehacerlo como tal, en vez de buscar errores o fallos.
Ejemplo alternativo completo:
Código:
<html>
<head>
<script type="text/javascript">
<!--
function sumaDigitos(cantidad) {
var suma = 0 ;
var cadena = cantidad.toString();
for(var i=0; i<cadena.length; i++)
suma += parseInt(cadena.substr(i, 1), 10);
if (suma > 9) return sumaDigitos(suma)
else return suma
}
function calcula() {
var cantidad = parseInt(document.formulario.kk.value, 10) +
parseInt(document.formulario.kk2.value, 10) ;
alert(sumaDigitos(cantidad));
}
//-->
</script>
</head>
<body>
<form action="" name="formulario" method="get">
<input name="kk" />
<input name="kk2" />
<input type="button" value="Calcular" onclick="calcula()" />
</form>
</body>
</html>
Espero que te sirva.
Saludos,
Mikel