@r_g_b_a

Как суммировать все значения отмеченных checkbox?

Здравствуйте.
Дано список из checkbox'ов https://jsfiddle.net/zt8hL9w7/ при выборе которых выводится сумма их значений. Но мне необходимо, чтобы значение каждого пункта предварительно рассчитывалось по своей формуле. Например, при выборе Checkbox 1 его значение нужно умножить на значение какого-нибудь input'а на странице, и уже этот результат передать в функцию суммирования, и так же для остальных.
Где в коде можно прописать эти функции?

И еще заметил, что если в моем примере checkbox'ы имеют одинаковые значения, то они отмечаются все вместе группой. Как это исправить?
  • Вопрос задан
  • 372 просмотра
Решения вопроса 1
kleinmaximus
@kleinmaximus
Senior Full-stack Javascript Developer
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Kozack
@Kozack Куратор тега Vue.js
Thinking about a11y
Можно использовать геттеры. Например как-то вот так:
class CheckBoxCalc {
	constructor(text, callback) {
  	this.text = text
  	this.cb = callback
  }
  
  get value() {
  	return this.cb()
  }
}


new Vue({
  el: "#app",
  data: {
  	checkedNumbers: [],
    checkbox: [
    	new CheckBoxCalc('Checkbox 1', () => 10),
      new CheckBoxCalc('Checkbox 2', () => Math.floor(Date.now() / 10000000)),
      new CheckBoxCalc('Checkbox 3', () => Math.floor(Math.random() * 100)),
    ]
  },
  computed: {
  	sum() {
    	return this.checkedNumbers.reduce((acc, index) => {
      	return acc + this.checkbox[index].value
      }, 0);
    }
  }
})

Выглядит немножечко колхозно, но там уж сами до ума доведете
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы