Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Спор с руководителем.Проверка на отмеченный чекбокс (https://javascript.ru/forum/misc/39381-spor-s-rukovoditelem-proverka-na-otmechennyjj-chekboks.html)

Ridzhi 27.06.2013 16:39

Спор с руководителем.Проверка на отмеченный чекбокс
 
Друзья, разрешите, пожалуйста, спор средненького разработчика со своим руководителем.
Задача: Сделать что то, если конкретный чекбокс("#cb") выбран или нет.
Проголосуйте пожалуйста за вариант, который считаете лучше(по любой шкале).
1.
if($("#сb:checked").length) {
// делаем что то
}

2.
if($("#сb").attr('checked')) {
// делаем что то
}

mta88 27.06.2013 16:47

ничего выбирать не буду
на вашем месте просто бы протестировал оба куска кода на всех возможных браузерах
было бы быстрее и надежнее

Deff 27.06.2013 16:54

if($("#сb")[0].checked){
  alert("Выбран");
}

melky 27.06.2013 19:26

оба варианта не нравятся
$("#сb").is(":checked")

вот это более понятно

I.V.A.N 27.06.2013 21:45

мне первый вариант понравился...
хотя второй понятнее...

vadim5june 27.06.2013 22:02

а помоему...главное чтоб мышей ловила

рони 27.06.2013 22:10

свойство checked булевого типа а атрибут checked строка квери рекомендует .prop('checked')
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>

<body>
  <input id="сb" name="" type="checkbox" checked="checked">
  <script>
  alert([$("#сb:checked").length,$("#сb").attr('checked'),$("#сb")[0].checked,$("#сb").prop('checked'),$("#сb").is(":checked")]);
  </script>
</body>
</html>

ruslan_mart 28.06.2013 04:55

Самый наилучший вариант:
document.getElementById('cb').checked

:D

danik.js 28.06.2013 05:32

Первый вариант не интуитивный.
Либо второй, но с поправкой рони, то есть не attr() а prop() , либо вариант melky - этот так совсем выглядит логичным, но лично меня смущает двойной вызов разборщика селектора, хотя конечно глупо считаться с такой мелочью ))
Цитата:

Сообщение от mta88
на вашем месте просто бы протестировал оба куска кода на всех возможных браузерах

Это бессмысленно. jQuery уже обеспечивает кроссбраузерную работу.

mta88 28.06.2013 06:49

Цитата:

Сообщение от danik.js (Сообщение 258937)
Это бессмысленно. jQuery уже обеспечивает кроссбраузерную работу.

но ведь у топикстатера же появились сомнения:D я хотел их развеять
моя настоящая ошибка в том, что я забыл про различия 'attr' и 'prop'


Часовой пояс GMT +3, время: 10:33.