Как снять флажок с помощью библиотеки jQuery Uniform
у меня проблема с отключением a checkbox
. Взгляните на мой jsFiddle, где я пытаюсь:
$("#check2").attr("checked", true);
Я использую униформа для укладки checkbox
и это просто не работает для check / uncheck the checkbox
.
какие идеи?
12 ответов:
глядя на их документы, у них есть
$.uniform.update
функция для обновления элемента "униформа".пример: http://jsfiddle.net/r87NH/4/
$("input:checkbox").uniform(); $("body").on("click", "#check1", function () { var two = $("#check2").attr("checked", this.checked); $.uniform.update(two); });
более простое решение-это сделать это, а не использовать uniform:
$('#check1').prop('checked', true); // will check the checkbox with id check1 $('#check1').prop('checked', false); // will uncheck the checkbox with id check1
это не вызовет никакого действия щелчка определено.
вы также можете использовать:
$('#check1').click(); //
это переключит флажок / снимите флажок, но это также вызовет любое действие щелчка, которое вы определили. Так что будь осторожен.
EDIT: в jQuery 1.6+ использует
prop()
неattr()
для флажков проверено значение
$("#chkBox").attr('checked', false);
это сработало для меня, это снимите флажок. Таким же образом мы можем использовать
$("#chkBox").attr('checked', true);
чтобы проверить флажок.
если вы используете единый 1.5 затем используйте этот простой трюк, чтобы добавить или удалить атрибут проверки
просто добавьте значение= "проверить" в поле ввода вашего флажка.
добавьте этот код вuniform.js
>function doCheckbox(elem){
>.click(function(){
if ( $(elem+':checked').val() == 'check' ) { $(elem).attr('checked','checked'); } else { $(elem).removeAttr('checked'); }
если вы не хотите добавлять value= "check" в поле ввода, потому что в некоторых случаях вы добавляете два флажка, поэтому используйте это
if ($(elem).is(':checked')) { $(elem).attr('checked','checked'); } else { $(elem).removeAttr('checked'); }
если вы используете униформа 2.0 затем используйте этот простой трюк, чтобы добавить или удалить атрибут проверки
в этойclassUpdateChecked($tag, $el, options) {
изменить функциюif ($el.prop) { // jQuery 1.6+ $el.prop(c, isChecked); }
до
if ($el.prop) { // jQuery 1.6+ $el.prop(c, isChecked); if (isChecked) { $el.attr(c, c); } else { $el.removeAttr(c); } }
$('#check1').prop('checked', true).uniform(); $('#check1').prop('checked', false).uniform();
это сработало для меня.
нужно позвонить
$.uniform.update()
Если вы обновляете элемент с помощью JavaScript, как указано в документации.
в первую очередь
checked
может иметь значениеchecked
, или пустая строка.$("input:checkbox").uniform(); $('#check1').live('click', function() { $('#check2').attr('checked', 'checked').uniform(); });
в некоторых случаях вы можете использовать это:
$('.myInput').get(0).checked = true
для переключения вы можете использовать, если еще с функцией
$("#checkall").change(function () { var checked = $(this).is(':checked'); if (checked) { $(".custom-checkbox").each(function () { $(this).prop("checked", true).uniform(); }); } else { $(".custom-checkbox").each(function () { $(this).prop("checked", false).uniform(); }); } }); // Changing state of CheckAll custom-checkbox $(".custom-checkbox").click(function () { if ($(".custom-checkbox").length == $(".custom-checkbox:checked").length) { $("#chk-all").prop("checked", true).uniform(); } else { $("#chk-all").removeAttr("checked").uniform(); } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" id='checkall' /> Select All<br/> <input type="checkbox" class='custom-checkbox' name="languages" value="PHP"> PHP<br/> <input type="checkbox" class='custom-checkbox' name="languages" value="AngularJS"> AngularJS<br/> <input type="checkbox" class='custom-checkbox' name="languages" value="Python"> Python<br/> <input type="checkbox" class='custom-checkbox' name="languages" value="Java"> Java<br/>