Как проверить, установлен ли флажок в массиве флажков с помощью идентификатора массива флажков?
Я использую следующий код, но он всегда возвращает количество отмеченных флажков независимо от идентификатора.
function isCheckedById(id) {
alert(id);
var checked = $("input[@id=" + id + "]:checked").length;
alert(checked);
if (checked == 0) {
return false;
} else {
return true;
}
}
javascript
jquery
html
checkbox
Джейк
источник
источник
id
уникальны!name
может (и должен, в этом случае) повториться, но вы обнаружите много странных вещей, происходящих, если вы продублируетеid
! = DОтветы:
Идентификаторы должны быть уникальными в вашем документе, это означает, что вы не должны делать это:
Вместо этого удалите идентификатор, а затем выберите их по имени или по содержащему элементу:
А теперь JQuery:
источник
$('#checkArray :checkbox:checked').length > 0;
когда более простое$('#checkArray').checked
работает и доступно в нескольких версиях?var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;
Это происходит, если флажок установлен.
Для массива флажков с тем же именем вы можете получить список проверенных:
Затем, чтобы просмотреть их и посмотреть, что проверено, вы можете сделать:
Чтобы узнать, сколько проверено, вы можете сделать:
источник
$('#'+id).attr('checked')
, который эквивалентен,$('#' + id).is(":checked")
но легче запомнить IMO..attr('checked')
. Его поведение изменилось в jQuery 1.6. Раньше возвращалсяfalse
илиtrue
. Теперь это возвращаетundefined
или"checked"
..is(':checked')
не имеет этой проблемы.$('.ClassName').is(':checked')
не работает, а$('#' + id).is(":checked")
работает? кроме того, что один ищет по id и один по имени класса.Приведенный выше код возвращает true, если флажок установлен, или false, если нет.
источник
var isChecked = $('#CheckboxID').attr('checked') ? true : false;
но не всегда возвращал правильное значение. Тогда спасибо!Все следующие методы полезны:
Рекомендуется избегать DOMelement или встроенного «this.checked», вместо этого следует использовать jQuery on для метода прослушивания событий.
источник
Код jQuery, чтобы проверить, установлен ли флажок или нет:
В качестве альтернативы:
источник
:
... Исправьте одно:if(('input[name="checkBoxName"]').is(':checked'))
.if($('input[name="checkBoxName"]').is(':checked'))
.else
блок, поскольку объект jQuery, даже если он не содержит совпадающих элементов, является «правдивым». Добавьте.length
в конец, тогда вы говорите.Возможны все нижеуказанные методы
источник
Вы можете использовать этот код,
источник
В соответствии с документацией jQuery существуют следующие способы проверить, установлен флажок или нет. Давайте рассмотрим флажок для примера (Проверьте Работающий jsfiddle со всеми примерами)
Пример 1 - С проверено
Пример 2 - с jQuery есть, ПРИМЕЧАНИЕ -: проверено
Пример 3 - с помощью jQuery prop
Проверьте рабочий jsfiddle
источник
Вы можете попробовать это:
источник
attr
отражает только значение атрибута в HTML, а не значение свойства в DOM. Смотрите документацию дляattr
, где он говорит : « Для того, чтобы получать и изменять свойства DOM , такие какchecked
,selected
илиdisabled
состояние форменных элементов, используйте.prop()
метод.», А также документация дляprop
, где он говорит , что «.prop()
метод должен быть использован для набораdisabled
иchecked
вместо от.attr()
метода «.Вы можете использовать любой из следующих рекомендуемых кодов jquery.
источник
Я знаю, что OP хочет jquery, но в моем случае чистый JS был ответом, поэтому, если кто-то вроде меня здесь и не имеет jquery или не хочет его использовать - вот ответ JS:
Он возвращает true, если вход с идентификатором myCheck отмечен, и false, если не проверен.
Просто как тот.
источник
$("#myCheck")[0].checked
будет работать в jquery! : DВы можете сделать это просто как;
Рабочая скрипка
HTML
JQuery
или даже проще;
Если
checkbox
флажок установлен, он вернется вtrue
противном случаеundefined
источник
or even simpler;
->$("#checkbox").checked
Я также часто использую эту идею:
Если проверено, он вернет 1; в противном случае он вернет 0.
источник
Простая демонстрация для проверки и установки флажка.
jsfiddle !
источник
Просто в моем примере ситуация была диалоговым окном, которое затем проверяло флажок перед закрытием диалога. Ничего из вышеперечисленного и Как проверить, установлен ли флажок в jQuery? и jQuery, если флажок установлен, тоже не работает.
В конце
Это сработало, вызывая класс, а затем идентификатор. а не только удостоверение личности. Это может быть связано с тем, что проблема связана с вложенными элементами DOM на этой странице. Обходной путь был выше.
источник
Для флажка с идентификатором
ты можешь просто сделать
Вы получите
true
илиfalse
как возвращаемое значение для вышеуказанного синтаксиса. Вы можете использовать его в предложении if как обычное логическое выражение.источник
Нечто подобное может помочь
источник
На самом деле, согласно данным jsperf.com , DOM-операции выполняются быстрее, чем $ (). Prop (), а затем $ (). Is () !!
Вот синтаксисы:
Я лично предпочитаю
.prop()
. В отличие от.is()
, он также может быть использован для установки значения.источник
Переключатель установлен
источник
Используя этот код, вы можете проверить, установлен ли хотя бы один флажок или нет в разных группах флажков или из нескольких флажков. Используя это, вы можете не требовать удаления идентификаторов или динамических идентификаторов. Этот код работает с одинаковыми идентификаторами.
Ссылка Ссылка
источник
С середины 2019 года jQuery иногда отходит на второй план к таким вещам, как VueJS, React и т. Д. Вот простой ванильный вариант прослушивателя Javascript onload:
источник
Ваш вопрос не ясен: вы хотите указать «идентификатор массива флажков» при вводе и получить
true/false
при выводе - таким образом, вы не будете знать, какой флажок был установлен (как предполагает название вашей функции). Итак, ниже есть мое предложение вашего тела,isCheckedById
которое при входе принимает флажокid
и при выходе возвращаетtrue/false
(это очень просто, но ваш идентификатор не должен быть ключевым словом),Показать фрагмент кода
источник
используйте код ниже
источник
$(function() { $("[id$='chkSendMail']").on("change", ShowMailSection); });
$("[id$='chkSendMail']:checked]")
должны работать нормально