Как снять флажок с помощью библиотеки jQuery Uniform


у меня проблема с отключением a checkbox. Взгляните на мой jsFiddle, где я пытаюсь:

   $("#check2").attr("checked", true);

Я использую униформа для укладки checkbox и это просто не работает для check / uncheck the checkbox.

какие идеи?

12 144

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(); 

это сработало для меня.

просто сделать это:

$('#checkbox').prop('checked',true).uniform('refresh');

нужно позвонить $.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/>

другой способ сделать это,

использовать $('#check2').click();

это заставляет uniform установить флажок и обновить его маски

флажок, который действует как радио btn

$(".checkgroup").live('change',function() { var previous=this.checked; $(".checkgroup).attr("checked", false); $(this).attr("checked", previous); });