Показать сообщение отдельно
  #3 (permalink)  
Старый 12.12.2018, 10:31
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

видимо, у тебя происходит сабмит при клике %)
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)
Ответить с цитированием