Я хотел бы сделать что-то вроде этого, чтобы поставить галочку на checkbox с помощью jQuery:
$(".myCheckBox").checked(true);
или же
$(".myCheckBox").selected(true);
Такое существует?
Проверьте другие способы сделать это с помощью jQuery здесь stackoverflow.com/a/22019103/1868660
Если вам нужно инициировать событие onchange, это $("#mycheckbox").click();
«Проверка чего-либо» предполагает тестирование, поэтому я думаю, что «Установить флажок» - более понятный и лучший заголовок.
prop (); функция - прекрасный ответ. См. Определение функции - api.jquery.com/prop
attr () не работает с IE. использование prop () - лучший вариант
$(".myCheckBox").prop("checked", true)


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ты можешь сделать
$('.myCheckbox').attr('checked',true) //Standards compliant
или же
$("form #mycheckbox").attr('checked', true)
Если у вас есть собственный код в событии onclick для флажка, который вы хотите активировать, используйте его вместо этого:
$("#mycheckbox").click();
Вы можете снять галочку, полностью удалив атрибут:
$('.myCheckbox').removeAttr('checked')
Вы можете установить все флажки следующим образом:
$(".myCheckbox").each(function(){
$("#mycheckbox").click()
});
вы также можете использовать $ ("# myTable input: checkbox"). each (...);
Еще можно пойти $(".myCheckbox").click()
@Michah удаление отмеченного атрибута делает невозможным сброс формы
Этот ответ устарел, потому что он использует .attr вместо .prop.
$("#mycheckbox").click(); работал у меня, так как я тоже слушал событие изменения, а .attr и .prop не запускали событие изменения.
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
Если вы работаете только с одним элементом, вы всегда можете просто получить доступ к базовому HTMLInputElement и изменить его свойство .checked:
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
Преимущество использования методов .prop() и .attr() вместо этого заключается в том, что они будут работать со всеми совпадающими элементами.
Метод .prop() недоступен, поэтому вам нужно использовать .attr().
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
Обратите внимание, что это подход, используемый модульными тестами jQuery до версии 1.6, и его предпочтительнее использовать $('.myCheckbox').removeAttr('checked');, поскольку последний, если изначально был установлен флажок, изменит поведение вызова .reset() в любой форме, которая его содержит - тонкое, но, вероятно, нежелательное изменение поведения.
Для большего контекста некоторые неполные обсуждения изменений в обработке атрибута / свойства checked при переходе с 1.5.x на 1.6 можно найти в разделах примечания к выпуску версии 1.6 и Атрибуты против свойств.prop() документация.
Это получение значения или установка значения? Как мне снять галочку?
Да, это установка значения атрибута, и снимите флажок, удалив атрибут. Я обновил свой ответ, чтобы показать это.
@Xian удаление отмеченного атрибута делает невозможным сброс формы
Проблема здесь в том, что вам нужно что-то, что работает для обеих версий. В этом случае вы можете использовать плагин. :) Спасибо за обновления!
В качестве побочного примечания, jQuery 1.6.1 должен исправить проблему, о которой я упоминал, поэтому мы можем технически все еще вернуться к использованию $ (...). Prop (...)
«Если вы работаете только с одним элементом, всегда будет быстрее всего использовать DOMElement.checked = true». Но это было бы ничтожно мало, потому что это всего лишь один элемент ...
Как говорит Тайлер, это незначительное улучшение производительности. Для меня кодирование с использованием общего API делает его более читабельным, чем смешивание собственного API и jQuery API. Я бы придерживался jQuery.
не уверен, что это применимо и к jQuery, но на всякий случай stackoverflow.com/questions/10650233/…
не забудьте поставить # перед идентификатором.
@TylerCrompton - Конечно, дело не только в производительности, но создание $(element).prop('checked') - это пустая трата набора текста. element.checked существует и должен использоваться в тех случаях, когда у вас уже есть element.
Ответ bchhun более правильный, метод .prop не повлияет на элемент, отправленный при отправке формы
в jQuery 1.9 вы ДОЛЖНЫ использовать prop ('checked', bool) из-за изменений в поведении: jquery.com/upgrade-guide/1.9
$('.myCheckbox').removeAttr('checked'); не будет работать после того, как пользователь установит флажок. Вместо этого посмотрите мой ответ stackoverflow.com/a/5916151/696056Если что-то не переключается так, как вы хотите, особенно в Chrome (все идет хорошо в FF и даже IE7,8), используйте собственный доступ $('.myCheckbox')[0].checked=true и взгляните на этот: stackoverflow.com/q/5907645#answer-5907877
UPD: для проверки ввода флажка через jQuery используйте метод .is () с селектором ': checked' - чтобы проверить все описанные выше методы и зависимость от версии jQuery, см .: jsfiddle.net/sF8Kk
Имя этого свойства легче понять, если вы поймете, что «отмечен» - это американское слово «отмечен». (Это также этимология термина «флажок».) (Годы, которые я провел в США, помогли мне разобраться во многих номенклатурных причудах в языках программирования.)
Изменение значения игнорировало обработчик .change(...), который я настроил, я только что добавил: $(this).attr('checked',!this.checked).change()
Наконец, после получасового поиска в Google все оказалось так просто (на самом деле я знал, что это должно быть просто). Я пытался отменить состояние флажка внутри события изменения, если пользователь решил отменить операцию с помощью диалогового окна с запросом. Это работает без event.preventDefault() и других вещей, которые люди предложили в других ответах.
Примечание: это не вызывает событие change. При необходимости добавьте .trigger('change')
Использовать:
$(".myCheckbox").attr('checked', true); // Deprecated
$(".myCheckbox").prop('checked', true);
И если вы хотите проверить, установлен ли флажок:
$('.myCheckbox').is(':checked');
также $ (selector) .checked to check отмечен
Я попробовал этот точный код, и он не сработал для меня в случае флажка «выбрать все / не выбрать ничего», который должен проверять и снимать все флажки, а также проверять их состояние. Вместо этого я попробовал ответить @Christopher Harris, и это помогло.
Зачем использовать "form #mycheckbox" вместо просто "#mycheckbox"? Идентификатор уже уникален во всем документе, его проще и быстрее выбрать напрямую.
@YuriAlbuquerque, это был пример. вы можете использовать любой селектор, какой захотите.
$ (selector) .checked не работает. В jQuery нет "проверенного" метода.
@BrendanByrd Тем не менее, у объекта DOM есть свойство checked (без упаковки jQuery)
$("#mycheckbox")[0].checked = true;
$("#mycheckbox").attr('checked', true);
$("#mycheckbox").click();
Последний вызовет событие щелчка для флажка, остальные - нет. Поэтому, если у вас есть собственный код в событии onclick для флажка, который вы хотите активировать, используйте последний.
верхний не удастся ... check не является членом объекта jquery
Этот ответ устарел, потому что он использует .attr вместо .prop.
IMO событие click ненадежно в Firefox и Edge.
Вы также можете расширить объект $ .fn новыми методами:
(function($) {
$.fn.extend({
check : function() {
return this.filter(":radio, :checkbox").attr("checked", true);
},
uncheck : function() {
return this.filter(":radio, :checkbox").removeAttr("checked");
}
});
}(jQuery));
Тогда вы можете просто сделать:
$(":checkbox").check();
$(":checkbox").uncheck();
Или вы можете дать им более уникальные имена, такие как mycheck () и myuncheck (), если вы используете какую-то другую библиотеку, которая использует эти имена.
@ livfree75 удаление отмеченного атрибута делает невозможным сброс формы
Этот ответ устарел, потому что он использует .attr вместо .prop.
Это выбирает элементы, которые имеют указанный атрибут со значением, содержащим данную подстроку «ckbItem»:
$('input[name *= ckbItem]').prop('checked', true);
Он выберет все элементы, содержащие ckbItem в атрибуте name.
Чтобы установить флажок, вы должны использовать
$('.myCheckbox').attr('checked',true);
или же
$('.myCheckbox').attr('checked','checked');
и чтобы снять флажок, вы всегда должны устанавливать его в false:
$('.myCheckbox').attr('checked',false);
Если вы это сделаете
$('.myCheckbox').removeAttr('checked')
он удаляет атрибут полностью, и поэтому вы не сможете сбросить форму.
ПЛОХОЙ ДЕМО jQuery 1.6. Я думаю, что это не работает. Для 1.6 я собираюсь сделать новый пост об этом.
НОВАЯ РАБОЧАЯ ДЕМО jQuery 1.5.2 работает в Chrome.
Обе демонстрации используют
$('#tc').click(function() {
if ( $('#myCheckbox').attr('checked')) {
$('#myCheckbox').attr('checked', false);
} else {
$('#myCheckbox').attr('checked', 'checked');
}
});
Это неточно. установка атрибута 'checked' на '' снимет флажки нет, по крайней мере, в chrome.
@xixonia Я тестировал, прежде чем опубликовать вашу скрипку, не работает, потому что вы не изменили меню слева, чтобы включить jquery
@xixonia еще раз спасибо. Кажется, это не работает так же в jauery 1.6, см. примечание выше, спасибо за добавление вашего решения.
mcgralim - в 1.6 стало еще проще .... $(".mycheckbox").prop("checked", true/false)
@gnarf это здорово, но теперь мне придется изменить это во всем моем коде 8 ^ (
@mcgrailm - он все еще не выпущен, но мы можем добавить некоторую обратную совместимость для .attr() с логическими атрибутами - хотя я бы хотел, чтобы мы этого не делали - Читайте: forum.jquery.com/topic/prop-attr-rewrite-again
@Blazemonger, вы имеете в виду, что используете .prop, а не .attr?
Ваш ответ обещал новое актуальное решение, которого вы никогда не предоставляли. .attr был подходом неправильный к этой проблеме уже более двух лет.
В то время я опубликовал исправленный ответ, но это было 4 года назад, чувак. Я не обновляю все свои сообщения, и я уверен, что большинство людей этого не делают. Вы голосовали против поста четырехлетней давности, в котором говорилось, что он устарел, ну да
@DaveRager в этом случае, однако, устаревшие ответы не только устарели, но и полностью избыточны, поскольку принятый ответ уже отлично покрывает их содержимое. Нет смысла обновлять устаревший ответ, если впоследствии он все еще не пригодится.
@MarkAmery, вы упомянули, что мой пост ничего не добавил во время публикации, но это точно. Если вы посмотрите историю принятого ответа, вы обнаружите, что они предлагают удалить элемент. Из-за чего невозможно сбросить форму, поэтому я и опубликовал ее для начала.
@mcgrailm Я пошел дальше и изменил принятый ответ в свете ваших замечаний. Если вы хотите взглянуть на него и проверить, хорошо ли он выглядит в текущем состоянии, я буду признателен. Еще раз приношу свои извинения за резкую критику, которая, по крайней мере частично, была в высшей степени ошибочной.
Это правильный способ установки и снятия флажков с помощью jQuery, поскольку это кроссплатформенный стандарт, а будут разрешает репосты форм.
$('.myCheckBox').each(function(){ this.checked = true; });
$('.myCheckBox').each(function(){ this.checked = false; });
Делая это, вы используете стандарты JavaScript для установки и снятия флажков, поэтому любой браузер, который правильно реализует свойство "checked" элемента checkbox, будет безупречно запускать этот код. Это должен для всех основных браузеров, но я не могу протестировать его до Internet Explorer 9.
Проблема (jQuery 1.6):
Как только пользователь щелкает флажок, этот флажок перестает реагировать на изменения атрибута "checked".
Вот пример атрибута checkbox, который не выполняет работу после того, как кто-то установил флажок щелкнул (это происходит в Chrome).
Решение:
Используя свойство JavaScript "checked" в элементах ДОМ, мы можем решить проблему напрямую, вместо того, чтобы пытаться манипулировать DOM, чтобы он делал то, что мы хочу.
Этот плагин изменяет отмеченное свойство любых элементов, выбранных jQuery, и успешно проверяет и снимает флажки при любых обстоятельствах. Таким образом, хотя это может показаться чрезмерным решением, оно улучшит пользовательский интерфейс вашего сайта и поможет предотвратить разочарование пользователей.
(function( $ ) {
$.fn.checked = function(value) {
if (value === true || value === false) {
// Set the value of the checkbox
$(this).each(function(){ this.checked = value; });
}
else if (value === undefined || value === 'toggle') {
// Toggle the checkbox
$(this).each(function(){ this.checked = !this.checked; });
}
return this;
};
})( jQuery );
В качестве альтернативы, если вы не хотите использовать плагин, вы можете использовать следующие фрагменты кода:
// Check
$(':checkbox').prop('checked', true);
// Un-check
$(':checkbox').prop('checked', false);
// Toggle
$(':checkbox').prop('checked', function (i, value) {
return !value;
});
В вашем первом примере JSFiddle вы должны использовать removeAttr('checked'), а не attr('checked', false)
@DanielXMoore, вы обходите стороной вопрос. Пример должен был показать, что после того, как пользователь щелкнул флажок, браузер больше не реагирует на изменения атрибутов checked, несмотря на метода, используемого для их изменения.
@ChristopherHarris Хорошо, ты прав, я это пропустил. Начиная с jQuery 1.6, не следует ли вам использовать метод .prop? $('.myCheckBox').prop('checked', true) Таким образом, он будет автоматически применяться ко всему набору совпадающих элементов (хотя только при настройке получение по-прежнему будет только первым)
Да. prop - определенно подходящий способ установки атрибутов элемента.
@ChristopherHarris, я добавил в плагин то, что мне нужно, чтобы обеспечить некоторую гибкость параметров. Это упростило встроенную обработку без преобразования типа. Особенно из разрозненных баз данных с «идеями» о том, что такое «правда». Рабочий пример: jsfiddle.net/Cyberjetx/vcp96
@JoeJohnston В идеальном мире это не должно быть встроено в плагин. Вместо этого его следует преобразовать в значение true / false перед использованием с плагином. Что сказать, что база данных не считает «0» истинным? Все зависит от базы данных.
Мы можем использовать elementObject с jQuery для проверки атрибута:
$(objectElement).attr('checked');
Мы можем использовать это для всех версий jQuery без каких-либо ошибок.
Обновление: JQuery 1.6+ имеет новый метод prop, который заменяет attr, например:
$(objectElement).prop('checked');
Этот ответ устарел, потому что он использует .attr вместо .prop.
Вот код для отмеченного и снятого с помощью кнопки:
var set=1;
var unset=0;
jQuery( function() {
$( '.checkAll' ).live('click', function() {
$( '.cb-element' ).each(function () {
if (set==1){ $( '.cb-element' ).attr('checked', true) unset=0; }
if (set==0){ $( '.cb-element' ).attr('checked', false); unset=1; }
});
set=unset;
});
});
Обновление: вот тот же блок кода, использующий новый метод Jquery 1.6+ prop, который заменяет attr:
var set=1;
var unset=0;
jQuery( function() {
$( '.checkAll' ).live('click', function() {
$( '.cb-element' ).each(function () {
if (set==1){ $( '.cb-element' ).prop('checked', true) unset=0; }
if (set==0){ $( '.cb-element' ).prop('checked', false); unset=1; }
});
set=unset;
});
});
Этот ответ устарел, потому что он использует .attr вместо .prop.
Я не мог заставить его работать, используя:
$("#cb").prop('checked', 'true');
$("#cb").prop('checked', 'false');
И истина, и ложь установят флажок. Для меня сработало:
$("#cb").prop('checked', 'true'); // For checking
$("#cb").prop('checked', ''); // For unchecking
Разве это не должны быть true и false, а не 'true' и 'false'?
Это «не сработало», потому что 'false' был преобразован в логическое значение, что привело к true - пустая строка оценивается как false, поэтому он «работал». См. эта рабочий пример, например, что я имею в виду.
@ chris97ong Я отменил ваше изменение; когда кто-то говорит: «Не используйте приведенный ниже код, потому что он не работает», фиксация этот код, оставляя комментарий о том, что он не работает, вреден - особенно когда он нарушает объяснение в комментариях Зачем, код не не работает. Тем не менее, этот ответ все еще несколько запутан и заслуживает отрицательной оценки по причинам, указанным tpower и ShadowWizard.
используйте значения «истина» и «ложь» для логических значений, не используйте «истина» или «ложь» (строки).
Если предположить, что вопрос в том ...
Помните, что в типичном наборе флажков все теги ввода имеют одно и то же имя, они отличаются атрибутом value: для каждого ввода набора нет идентификатора.
Ответ Сианя можно расширить с помощью более конкретный селектор, используя следующую строку кода:
$("input.myclass[name='myname'][value='the_value']").prop("checked", true);
Если вы используете PhoneGap для разработки приложений, и у вас есть значение на кнопке, которое вы хотите отобразить мгновенно, не забудьте сделать это.
$('span.ui-[controlname]',$('[id]')).text("the value");
Я обнаружил, что без диапазона интерфейс не будет обновляться, что бы вы ни делали.
Я не могу найти решение. Я всегда буду использовать:
if ($('#myCheckBox:checked').val() !== undefined)
{
//Checked
}
else
{
//Not checked
}
Это не отвечает на вопрос (вопрос касается параметр, установлен ли флажок, а не определения, установлен ли флажок). Это также довольно уродливый способ определить, установлен ли флажок (с одной стороны, вы используете неочевидный факт, что .val() всегда будет возвращать undefined при вызове для элементов 0, чтобы определить, что объект jQuery пуст, когда вместо этого вы можете просто проверить его .length) - см. stackoverflow.com/questions/901712/… для более удобочитаемых подходов.
Попробуй это:
$('#checkboxid').get(0).checked = true; //For checking
$('#checkboxid').get(0).checked = false; //For unchecking
Вот способ сделать это без jQuery
function addOrAttachListener(el, type, listener, useCapture) {
if (el.addEventListener) {
el.addEventListener(type, listener, useCapture);
} else if (el.attachEvent) {
el.attachEvent("on" + type, listener);
}
};
addOrAttachListener(window, "load", function() {
var cbElem = document.getElementById("cb");
var rcbElem = document.getElementById("rcb");
addOrAttachListener(cbElem, "click", function() {
rcbElem.checked = cbElem.checked;
}, false);
}, false);<label>Click Me!
<input id = "cb" type = "checkbox" />
</label>
<label>Reflection:
<input id = "rcb" type = "checkbox" />
</label>Если вы используете мобильный телефон и хотите, чтобы интерфейс обновлялся и показывал, что флажок снят, используйте следующее:
$("#checkbox1").prop('checked', false).checkboxradio("refresh");
Вот полный ответ используя jQuery
Тестирую и работает на 100%: D
// when the button (select_unit_button) is clicked it returns all the checed checkboxes values
$("#select_unit_button").on("click", function(e){
var arr = [];
$(':checkbox:checked').each(function(i){
arr[i] = $(this).val(); // u can get id or anything else
});
//console.info(arr); // u can test it using this in google chrome
});
Чтобы установить флажок с помощью jQuery 1.6 или выше, просто сделайте следующее:
checkbox.prop('checked', true);
Чтобы снять отметку, используйте:
checkbox.prop('checked', false);
Вот что мне нравится использовать для переключения флажка с помощью jQuery:
checkbox.prop('checked', !checkbox.prop('checked'));
Если вы используете jQuery 1.5 или ниже:
checkbox.attr('checked', true);
Чтобы снять отметку, используйте:
checkbox.attr('checked', false);
$(".myCheckBox").prop("checked","checked");
Этот ответ устарел, потому что он использует .attr вместо .prop.
Помните об утечках памяти в Internet Explorer до Интернет-технологии, так как В документации jQuery указано:
In Internet Explorer prior to version 9, using .prop() to set a DOM element property to anything other than a simple primitive value (number, string, or boolean) can cause memory leaks if the property is not removed (using .removeProp()) before the DOM element is removed from the document. To safely set values on DOM objects without memory leaks, use .data().
Это не имеет значения, поскольку все (правильные) ответы используют .prop('checked',true).
Не уверен, что понял ваш комментарий. Он все еще существует в документации jQuery. Вы хотите сказать, что в IE <9 нет утечки памяти?
В этом случае утечки памяти нет, поскольку мы устанавливаем находятся на простое примитивное значение (Boolean).
В jQuery
if ($("#checkboxId").is(':checked')){
alert("Checked");
}
или же
if ($("#checkboxId").attr('checked')==true){
alert("Checked");
}
В JavaScript
if (document.getElementById("checkboxID").checked){
alert("Checked");
}
Это не отвечает на вопрос.
Этот ответ устарел, потому что он использует .attr вместо .prop.
$('controlCheckBox').click(function(){
var temp = $(this).prop('checked');
$('controlledCheckBoxes').prop('checked', temp);
});
- 1 за то, что это ответ, состоящий только из кода, без прямого ответа на вопрос и добавления ничего, чего еще не было в других ответах.
Вот код и демонстрация того, как установить несколько флажков ...
http://jsfiddle.net/tamilmani/z8TTt/
$("#check").on("click", function () {
var chk = document.getElementById('check').checked;
var arr = document.getElementsByTagName("input");
if (chk) {
for (var i in arr) {
if (arr[i].name == 'check') arr[i].checked = true;
}
} else {
for (var i in arr) {
if (arr[i].name == 'check') arr[i].checked = false;
}
}
});
- 1; смешивание селекторов jQuery, таких как $("#check"), с необработанными вызовами DOM API, такими как document.getElementsByTagName("input"), кажется мне неэлегантным, особенно с учетом того, что здесь можно избежать циклов for, используя .prop(). Несмотря на это, это еще один поздний ответ, который не добавляет ничего нового.
В целом:
$("#checkAll").click(function(){
$(".somecheckBoxes").prop('checked',$(this).prop('checked')?true:false);
});
Обычный JavaScript очень прост и намного меньше накладных расходов:
var elements = document.getElementsByClassName('myCheckBox');
for(var i = 0; i < elements.length; i++)
{
elements[i].checked = true;
}
@MarkAmery В принятом ответе не рассматривается, как это сделать без jQuery. Мой ответ добавляет дополнительную пользу к принятому ответу.
Другое возможное решение:
var c = $("#checkboxid");
if (c.is(":checked")) {
$('#checkboxid').prop('checked', false);
} else {
$('#checkboxid').prop('checked', true);
}
Чтобы проверить и снять отметку
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
- 1; это не добавляет никакой ценности уже раздутому потоку. Код здесь точно такой же, как принятый ответ.
Вы можете попробовать это:
$('input[name = "activity[task_state]"]').val("specify the value you want to check ")
Это, наверное, самое короткое и простое решение:
$(".myCheckBox")[0].checked = true;
или же
$(".myCheckBox")[0].checked = false;
Еще короче было бы:
$(".myCheckBox")[0].checked = !0;
$(".myCheckBox")[0].checked = !1;
Вот и a jsFiddle.
Если вы используете ASP.NET MVC, сгенерируйте много флажков, а затем установите выбрать / отменить выбор всех с помощью JavaScript, вы можете сделать следующее.
HTML
@foreach (var item in Model)
{
@Html.CheckBox(string.Format("ProductId_{0}", @item.Id), @item.IsSelected)
}
JavaScript
function SelectAll() {
$('input[id^ = "ProductId_"]').each(function () {
$(this).prop('checked', true);
});
}
function UnselectAll() {
$('input[id^ = "ProductId_"]').each(function () {
$(this).prop('checked', false);
});
}
Зачем здесь нужен каждый?
Когда вы установили флажок вроде:
$('.className').attr('checked', 'checked')
этого может быть недостаточно. Вы также должны вызвать функцию ниже;
$('.className').prop('checked', 'true')
Особенно, когда вы убрали атрибут checkbox checked.
Для jQuery 1.6+
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
Для jQuery 1.5.x и ниже
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
Проверить,
$('.myCheckbox').removeAttr('checked');
Как сказал @ livefree75:
jQuery 1.5.x и ниже
Вы также можете расширить объект $ .fn новыми методами:
(function($) {
$.fn.extend({
check : function() {
return this.filter(":radio, :checkbox").attr("checked", true);
},
uncheck : function() {
return this.filter(":radio, :checkbox").removeAttr("checked");
}
});
}(jQuery));
Но в новых версиях jQuery мы должны использовать что-то вроде этого:
jQuery 1.6+
(function($) {
$.fn.extend({
check : function() {
return this.filter(":radio, :checkbox").prop("checked", true);
},
uncheck : function() {
return this.filter(":radio, :checkbox").prop("checked",false);
}
});
}(jQuery));
Тогда вы можете просто сделать:
$(":checkbox").check();
$(":checkbox").uncheck();
Это может кому-то помочь.
HTML5
<input id = "check_box" type = "checkbox" onclick = "handleOnClick()">
JavaScript.
function handleOnClick(){
if ($("#check_box").prop('checked'))
{
console.info("current state: checked");
}
else
{
console.info("current state: unchecked");
}
}
Если вы используете Бутстрап (возможно, неосознанно) ...
$('#myCheckbox').bootstrapToggle('on')
$('#myCheckbox').bootstrapToggle('off')
if ($('jquery_selector').is(":checked")){
//somecode
}<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>При ответе предпочтительнее указывать какое-то объяснение, ПОЧЕМУ ваш ответ - тот.
Вы можете установить флажок установленного флажка с помощью JavaScript по-разному. Вы можете увидеть ниже.
Первый способ -
$('.myCheckbox').prop('checked', true);
Второй способ -
$('.myCheckbox').attr('checked', true);
Третий способ (для проверки условия, если флажок установлен или нет) - $('.myCheckbox').is(':checked')
Если вы используете .prop('checked', true|false) и не меняли флажок, вам нужно добавить trigger('click') следующим образом:
// Check
$('#checkboxF1').prop( "checked", true).trigger('click');
// Uncheck
$('#checkboxF1').prop( "checked", false).trigger('click');
так рада, что нашла это. благодарю вас! почти сошла с ума !!
Вы можете использовать: .prop (имя_свойства) - добавлена версия: 1.6
p {margin: 20px 0 0;}
b {color: red;}
label {color: red;}<!doctype html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<script src = "https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<input id = "check1" type = "checkbox" checked = "checked">
<label for = "check1">Check here</label>
<p></p>
<script>
$( "input" ).change(function() {
var $input = $( this );
$( "p" ).html(
"The .attr( \"checked\" ): <b>" + $input.attr( "checked" ) + "</b><br>" +
"The .prop( \"checked\" ): <b>" + $input.prop( "checked" ) + "</b><br>" +
"The .is( \":checked\" ): <b>" + $input.is( ":checked" ) + "</b>" );
}).change();
</script>
</body>
</html>В вашем .html файле
<input type = "checkbox" (change) = "toggleEditable($event)">
В вашем файле .ts
toggleEditable(event) {
if ( event.target.checked ) {
this.contentEditable = true;
}
}
В вашем .html файле
<input type = "checkbox" [(ngModel)] = "isChecked" (change) = "checkAction(isChecked ? 'Action1':'Action2')" />
Решение JavaScript также может быть простым и с меньшими накладными расходами:
document.querySelectorAll('.myCheckBox').forEach(x=> x.checked=1)
document.querySelectorAll('.myCheckBox').forEach(x=> x.checked=1)checked A: <input type = "checkbox" class = "myCheckBox"><br/>
unchecked: <input type = "checkbox"><br/>
checked B: <input type = "checkbox" class = "myCheckBox"><br/>Это относится к Установите / снимите флажок с помощью JavaScript (jQuery или Vanilla)? или JavaScript проверить несколько флажков, а не к этому вопросу jQuery.
Вы можете сделать это, если у вас есть идентификатор для проверки
document.getElementById('ElementId').checked = false
И это снять отметку
document.getElementById('ElementId').checked = true
Более конкретный (и очень полезный!) Вопрос «Как мне проверить элемент в установленном флажке ПО ЗНАЧЕНИЮ?», Я думаю, мы также можем обсудить здесь, и я разместил ответ ниже.