Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.01.2019, 23:38
Интересующийся
Отправить личное сообщение для prolk Посмотреть профиль Найти все сообщения от prolk
 
Регистрация: 15.03.2018
Сообщений: 20

checkbox'ы. баттон.. деактевируется
<form name="form">
        <input type="checkbox" name="var" value="var1"> <span>VARIANT 1</span><br>
        <input type="checkbox" name="var" value="var2"> <span>VARIANT 2</span><br>
        <input type="checkbox" name="var" value="var3"> <span>VARIANT 3</span><br>
        <input type="checkbox" name="var" value="var4"> <span>VARIANT 4</span><br>
        <input type="checkbox" name="var" value="var5"> <span>VARIANT 5</span><br>
        <input type="button" value="reset">
    </form>



let res = document.querySelector('.result'),
    btn = document.querySelector('input[type=button]'),
    numCheck = 0,
    maxCheck = 3;

function radioClick(elem) {
    if (!elem.id) {
        numCheck++;
        elem.setAttribute('id', 'check');
    } else {
        numCheck--;
        elem.setAttribute('id', '');
    }
    for (let i = 0; i < form.length; ++i) {
        if (numCheck == maxCheck) {
            if (!form[i].checked) {
                form[i].disabled = true;
            }
        } else if (numCheck < maxCheck) {
            form[i].disabled = false;
        }
    }
}

for (let i = 0; i < form.elements.length; ++i) {
    let forms = form.elements[i];
    forms.onclick = function() {
        if (forms.type == 'checkbox') {
            radioClick(this);
        }
    }

}


Всем привет!!! с Рождеством Христовым!!!!!
вот в чем вопрос, при клике есть условие, что, если тип равен чекбоксу.... disabled, но тип баттон тоже становиться деактевирован, помогите с алгоритмом, как его не затронуть. && тоже пробовал, сунул, куда только можно. Спасибо!!!
Ответить с цитированием
  #2 (permalink)  
Старый 08.01.2019, 00:31
Интересующийся
Отправить личное сообщение для prolk Посмотреть профиль Найти все сообщения от prolk
 
Регистрация: 15.03.2018
Сообщений: 20

решил..... спасибо, если читали!!!!! с праздниками
btn.disabled = false;

нужно отдыхать по больше..... чета перемудрил)))))))))))
но, почему условие не разделяет по типу?

Последний раз редактировалось prolk, 08.01.2019 в 00:33.
Ответить с цитированием
  #3 (permalink)  
Старый 08.01.2019, 00:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

prolk,
что хотите сделать?
Ответить с цитированием
  #4 (permalink)  
Старый 08.01.2019, 00:55
Интересующийся
Отправить личное сообщение для prolk Посмотреть профиль Найти все сообщения от prolk
 
Регистрация: 15.03.2018
Сообщений: 20

рони,
1. кнопка должна быть деактивирована, пока не будут выбраны, 3 чекбокса.
2.при выборе 3-х, кнопка активируется.
3.кнопка ведет, куда-либо, или дает другой набор вариантов.
Это я себе такую задачу поставил....
Только кнопка сразу активирована... только после первого выбора она disabled... что не позволительно..... это полный код:
<form name="form">
        <input type="checkbox" name="var" value="var1"> <span>VARIANT 1</span><br>
        <input type="checkbox" name="var" value="var2"> <span>VARIANT 2</span><br>
        <input type="checkbox" name="var" value="var3"> <span>VARIANT 3</span><br>
        <input type="checkbox" name="var" value="var4"> <span>VARIANT 4</span><br>
        <input type="checkbox" name="var" value="var5"> <span>VARIANT 5</span><br>
        <input type="button" value="next">
    </form>
    <div class="result"></div>

let res = document.querySelector('.result'),
    btn = document.querySelector('input[type=button]'),
    numCheck = 0,
    maxCheck = 3;

function radioClick(elem) {
    if (!elem.id) {
        numCheck++;
        elem.setAttribute('id', 'check');
    } else {
        numCheck--;
        elem.setAttribute('id', '');
    }
    for (let i = 0; i < form.length; ++i) {
        if (numCheck == maxCheck) {
            if (!form[i].checked) {
                form[i].disabled = true;
                res.innerHTML = "далее";
                btn.disabled = false;
            }
        } else if (numCheck < maxCheck) {
            form[i].disabled = false;
            res.innerHTML = '';
            btn.disabled = true;
        }
    }
}

for (let i = 0; i < form.elements.length; ++i) {
    let forms = form.elements[i];
    forms.onclick = function() {
        if (forms.type === 'checkbox') {
            radioClick(this);
        }
    }

}
Ответить с цитированием
  #5 (permalink)  
Старый 08.01.2019, 01:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

prolk,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<form name="form">
        <input type="checkbox" name="var" value="var1"> <span>VARIANT 1</span><br>
        <input type="checkbox" name="var" value="var2"> <span>VARIANT 2</span><br>
        <input type="checkbox" name="var" value="var3"> <span>VARIANT 3</span><br>
        <input type="checkbox" name="var" value="var4"> <span>VARIANT 4</span><br>
        <input type="checkbox" name="var" value="var5"> <span>VARIANT 5</span><br>
        <input type="button" value="next" disabled="disabled">
    </form>
<script>
document.addEventListener("DOMContentLoaded", function() {
    var btn = document.querySelector('[type="button"]');
    document.querySelector('[name="form"]').addEventListener("click", function(event) {
        var target = event.target;
        if (target.name == "var") {
        var check = document.querySelectorAll('[name="var"]:checked');
        check.length < 3 ?
        btn.setAttribute("disabled", "disabled") :
        btn.removeAttribute("disabled")
        }
    })
});
  </script>
</body>
</html>

Последний раз редактировалось рони, 08.01.2019 в 01:20.
Ответить с цитированием
  #6 (permalink)  
Старый 08.01.2019, 01:16
Интересующийся
Отправить личное сообщение для prolk Посмотреть профиль Найти все сообщения от prolk
 
Регистрация: 15.03.2018
Сообщений: 20

может попробовать через метку: flaq =0; если сработает 3-и, тогда поставить flaq = 1; это как вариант
Ответить с цитированием
  #7 (permalink)  
Старый 08.01.2019, 01:17
Интересующийся
Отправить личное сообщение для prolk Посмотреть профиль Найти все сообщения от prolk
 
Регистрация: 15.03.2018
Сообщений: 20

рони,
завтра разберу, спасибо!!!! будет чем заняться....
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery и checkbox'ы bayanruby Events/DOM/Window 2 03.08.2012 17:03
на странице checkbox'ы при активации их и нажатии "ОК" должны появится поля ввода Азат Элементы интерфейса 9 13.07.2012 10:51
Dijits не отображаются checkbox'ы Mr. Anderson Dojo toolkit 2 13.10.2011 17:11