DrunkMaster
@DrunkMaster

Как узнать какая именно опция выбрана?

Есть html-код:
<input id="checkbox1" type="checkbox" value="10" event="cl">
<input id="checkbox2" type="checkbox" value="10" event="cl">
<input id="checkbox3" type="checkbox" value="20" event="cl">
<input id="checkbox4" type="checkbox" value="20" event="cl">

И его обработчик на JQ и JS:
var summ = 0;
var a = 0;
$(document).on('change', 'input[type="checkbox"]', function(event) {
    var value = Number($(this).val());

    if ($(this).is(':checked')) {
        summ += value;
        a++;
    } else {
        summ -= value;
        a--;
    }
});

1) Что нужно добавить в input и в обработчик что бы узнать номера всех выбранных чекбоксов?
2) Какова в данном случае роль event="cl" если в скрипте нигде кроме function(event) ни cl ни event больше не задействованы?
  • Вопрос задан
  • 165 просмотров
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
1) Что нужно добавить в input и в обработчик что бы узнать номера всех выбранных чекбоксов?
Что такое "номер чекбокса"?

2) Какова в данном случае роль event="cl" если в скрипте нигде кроме function(event) ни cl ни event больше не задействованы?
В данном коде - никакой. Но используется ли этот атрибут где-то ещё сказать невозможно. Аргумент функции event и атрибут event - это две разных никак не связанных друг с другом вещи.
Ответ написан
BenderLib
@BenderLib
JS
Можно так сделать исходя из вашего вопроса.
В HTML можно ничего не добавлять.

JS следующий:
var number = [];
var summ = 0;
var a = 0;
$(document).on('change', 'input[type="checkbox"]', function(event) {
    var value = Number($(this).val());


    if ($(this).is(':checked')) {
        number.push(this.id.slice(-1))
        console.log(number.join(' '))
        summ += value;
        a++;
    } else {
        var elem = number.indexOf(this.id.slice(-1));
        number.splice(elem, 1);
        console.log(number.join(' '))
        summ -= value;
        a--;
    }
});


В консоль будут выводиться номера чекбоксов в активном состоянии
На второй вопрос Вам ответили.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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