Javascript.RU

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

Проверка, помечен ли хоть один чекбокс
Что за наваждение. Простенькая задачка. И здесь препоны.
Да, сегодня не мой день.

Пожалуйста, посмотрите, правильная ли функция. Работает через раз.

<form name="types" ... ... ... onsubmit="return sub()">
checkbox class="chekbox"
checkbox class="chekbox"
checkbox class="chekbox"
...
function sub() {
  var res = true;
  var checkbox = document.getElementsByClassName('checkbox');
  for(var i = 0; i < checkbox.length; i++) {
    if(checkbox[i].checked==true) {
      var c=1;
      break;
    }
    if(c!=1) {
      alert('Выберите хотя бы один чекбокс!');
      res = false;
    }
    return res;
  }
}


Использую getElementsByClassName поскольку чекбоксы по-любому уже имеют такой класс, необходимый для другой функции.

Последний раз редактировалось Эдди, 06.08.2015 в 20:54.
Ответить с цитированием
  #2 (permalink)  
Старый 06.08.2015, 21:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Эдди,
14 строка не на своём месте
выбирайте сразу отмеченный - и строки с for станут ненужны
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2015, 21:21
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

Сообщение от рони Посмотреть сообщение
Эдди,
14 строка не на своём месте
выбирайте сразу отмеченный - и строки с for станут ненужны
Спасибо. Теперь все ОК.
Вот не люблю я стиль javascript:

татата {

}

ЛучшеЖ
тадада
{

}
Все вылезает сразу наружу.
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2015, 21:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Эдди,
function sub() {
    var a = !!document.querySelector(".chekbox:checked");
    a || alert("Выберите хотя бы один чекбокс!");
    return a
};
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2015, 21:32
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

Сообщение от рони Посмотреть сообщение
Эдди,
function sub() {
    var a = !!document.querySelector(".chekbox:checked");
    a || alert("Выберите хотя бы один чекбокс!");
    return a
};
Сложновато для меня. Но этот код намного короче, и это хорошо.
Ответить с цитированием
  #6 (permalink)  
Старый 06.08.2015, 23:18
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

Сообщение от Эдди Посмотреть сообщение
Сложновато для меня. Но этот код намного короче, и это хорошо.
Не работает.
Прочел кое что о querySelector - очень интересный метод. Не знал.
Надо подробнее изучить.
Хотя JS использую очень редко.

А пока пусть в цикле работает. Да и, как правило, в 90% случаев первый чекбокс по любому отмечается.
Ответить с цитированием
  #7 (permalink)  
Старый 06.08.2015, 23:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

отметить хотя бы один чекбокс
Сообщение от Эдди
Не работает.
ну не работает и ладно может у кого заработает
<!DOCTYPE HTML>

<html>

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

<body>
<form name="types" onsubmit="return sub()" action="http://javascript.ru/">
<input name="" type="checkbox" class="chekbox">
<input name="" type="checkbox" class="chekbox">
<input name="" type="checkbox" class="chekbox">
<input name="" type="submit" value="send">
</form>
 <script>
function sub() {
    var a = !!document.querySelector(".chekbox:checked");
    a || alert("Выберите хотя бы один чекбокс!");
    return a
};
 </script>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 06.08.2015, 23:57
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

А в отдельном файле работает. Ладно. Буду искать, что у меня там мешает.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выбрать один чекбокс из группы чекбоксов Hol1killer Общие вопросы Javascript 2 25.10.2013 17:26
Выяснить, есть ли в наборе хоть один чекнутый checkbox SkaN jQuery 5 30.05.2012 15:54
Выделить группу чекбоксов. В группе может быть только один чекбокс. JooZ Элементы интерфейса 2 23.12.2009 19:28