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

У меня проблема с снятием флажка checkbox. Посмотрите my jsFiddle, где я пытаюсь:

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

Я использую uniform для стилизации checkbox, и он просто не работает для check/uncheck checkbox.

Любые идеи?

Ответ 1

Посмотрев на свои документы, у них есть функция $.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);
});

Ответ 2

Более простое решение состоит в том, чтобы сделать это, а не использовать равномерное:

$('#check1').prop('checked', true); // will check the checkbox with id check1
$('#check1').prop('checked', false); // will uncheck the checkbox with id check1

Это не приведет к срабатыванию какого-либо действия по клику.

Вы также можете использовать:

$('#check1').click(); // 

Это переключит флажок check/uncheck для этого флажка, но это также вызовет любое действие click, которое вы определили. Поэтому будьте осторожны.

EDIT: jQuery 1.6+ использует prop() not attr() для отмеченных флажков значений

Ответ 3

$("#chkBox").attr('checked', false); 

Это сработало для меня, это снимет флажок. Точно так же мы можем использовать

$("#chkBox").attr('checked', true); 

чтобы установить флажок.

Ответ 4

Если вы используете uniform 1.5, используйте этот простой трюк, чтобы добавить или удалить атрибут проверки. Просто добавьте value = "check" в поле ввода флажка.
Добавьте этот код в uniform.js > function doCheckbox(elem){ > .click(function(){

if ( $(elem+':checked').val() == 'check' ) {
    $(elem).attr('checked','checked');           
}
else {
    $(elem).removeAttr('checked');
}   

если вы не хотите добавлять value = "проверить" в поле ввода, потому что в некоторых случаях вы добавляете два флажка, поэтому используйте

if ($(elem).is(':checked')) {
 $(elem).attr('checked','checked');
}    
else
{    
 $(elem).removeAttr('checked');
}

Если вы используете uniform 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);
    }

}

Ответ 5

$('#check1').prop('checked', true).uniform(); 
$('#check1').prop('checked', false).uniform(); 

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

Ответ 6

Просто сделайте следующее:

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

Ответ 7

вам нужно вызвать $.uniform.update(), если вы обновите элемент с помощью javascript, как указано в документации.

Ответ 8

Прежде всего, checked может иметь значение checked или пустую строку.

$("input:checkbox").uniform();

$('#check1').live('click', function() {
    $('#check2').attr('checked', 'checked').uniform();
});

Ответ 9

В некоторых случаях вы можете использовать это:

$('.myInput').get(0).checked = true

Для переключения вы можете использовать if else с функцией

Ответ 10

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

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

это приводит к тому, что единообразно проверяет флажок и обновляет его маскирует

Ответ 11

которые действуют как radio btn

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