видимо, у тебя происходит сабмит при клике %)
const root = document.querySelector('#root')
root.innerHTML = `<div class="modal">
<form>
<input id="id1" type="text" />
<input id="id2" type="text" />
<input id="id3" type="text" />
<button id="btn" class="button">Показать сраную сумму</button>
</form>
</div>`
document.getElementById('btn').addEventListener('click', e => {
e.preventDefault() // не делать сабмит формы
isNumeric = (value) => /^-{0,1}\d+$/.test(value) // значение это число?
getValue = (id) => {
const value = document.getElementById(id).value
return this.isNumeric(value) ? parseInt(value) : null // если число, то вернется число, а если нет, то вернется null
}
const values = [this.getValue('id1'), this.getValue('id2'), this.getValue('id3')] // занесем все значения полей в массив
const summ = values.reduce((p, c) => p === null ? c : c === null ? p : p + c) // посчитаем сумму, сумма будет только из чисел
const valid = values.every(v => v !== null) // все ли значения полей числа?
console.log(valid, summ)
}, false)