Где ошибся в JS?
Ошиблись Вы вот тут:
i14.value.length // i14.value строка.
Соответственно, Вы смотрите не на число, а на количество введённых в поле ввода символов. Нужно преобразовать в число.
Number(i14.value)

А вот решение по проще от меня:
snippet
Ошибся здесь i14.value.length

Бонусом полезная функция
function createArray(n) {
	return Array(n).fill(1);
}