Javascript.RU

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

Disable submit пока не заполнены минимум 5 checkbox
Здравствуйте.
Есть такой код:
$(document).ready(function(){
 
    $.each($(".checkbox"),function(){
        if($("input", this).is(':checked')){
          $(this).addClass("checked");
        }
      }
    );
    $(".checkbox").click(function(){
        $(this).toggleClass("checked");
        var path = $("input", this);
        if(path.is(':checked')){
          path.attr("checked", false);
        }else{
          path.attr("checked", true);
        }
      }
    );
  }
);

<script>
var n;
function check_all()
{

n = $("input:checked").length;

}

function show_result()
{
if(n>=4){
$('input:submit').attr("disabled", false);	
}
else
{
$("#result_calc").html("<div class=\"result_calc\">Нужно отметить больше 5 пунктов</div>");
}
}
 
</script>


<span class="checkbox">
  <input type="checkbox"  />
    <span class="check" onclick="check_all();"></span> </span>

<input disabled id="button" type="submit"/>


Я хочу следующее - в форме много checkbox'ов - что-то вроде калькулятора. Нужно, чтобы, пока не были отмечены минимум 5 checkbox кнопка отправить была не активна. Мне нужно именно такое решение, т.е. до отправки проверять количество отмеченных чекбоксов.

Вот только данный код у меня не работает. Вообще ничего не происходит. Кнопка не включается. Может нужно на кнопку поставить onclick и тогда проверять поля?
Ответить с цитированием
  #2 (permalink)  
Старый 15.07.2015, 21:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$('input:submit').prop("disabled", $("input:checked").length > 4 ? 0 : 1);


PS. Проверку выбранных флажков и установку атрибута нужно производить при каждой смене флажков.

Последний раз редактировалось laimas, 15.07.2015 в 21:38.
Ответить с цитированием
  #3 (permalink)  
Старый 16.07.2015, 01:56
Интересующийся
Отправить личное сообщение для november Посмотреть профиль Найти все сообщения от november
 
Регистрация: 01.08.2013
Сообщений: 23

Спасибо за ответ. Я не понял, куда это вставить? Вместо
$('input:submit').attr("disabled", false);
Ответить с цитированием
  #4 (permalink)  
Старый 16.07.2015, 03:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

checkbox выбрать все минимум 5
november,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  label {
    display: block;
  }
  .show{
      display: none;
  }

   </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
$(function() {
    var a = $("form"),
        c = $(".checkbox input:checkbox"),
        d = $("input:checkbox", a).not(c),
        e = $(".show", a);
    a.on("click", function(b) {
        $(b.target).is(c) && d.prop({
            checked: b.target.checked
        });
        b = $("input:checked").not(c).length;
        var a = 5 > b;
        $("input:submit").prop("disabled", +a);
        a ? e.slideDown() : e.slideUp();
        c.prop({
            checked: d.length == b
        })
    })
});

  </script>
</head>

<body>
<form action="http://">
<input type="checkbox"  />
<input type="checkbox"  />
<input type="checkbox"  />
<input type="checkbox"  />
<input type="checkbox"  />
<input type="checkbox"  />
<input type="checkbox"  />
<input type="checkbox"  />
<input type="checkbox"  />
<input type="checkbox"  />
<span class="checkbox">
<label><input type="checkbox"  />выбрать/сбросить всё</label>
</span>
<div class="show">минимум 5 пунктов</div>
<input disabled id="button" type="submit"/>
</form>



</body>

</html>

Последний раз редактировалось рони, 16.07.2015 в 17:53.
Ответить с цитированием
  #5 (permalink)  
Старый 16.07.2015, 17:08
Интересующийся
Отправить личное сообщение для november Посмотреть профиль Найти все сообщения от november
 
Регистрация: 01.08.2013
Сообщений: 23

Спасибо огромное! Работает!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция disable для нескольких checkbox allforweb Элементы интерфейса 4 19.12.2010 17:51