Установлен флажок jquery set

Я уже пробовал все возможные способы, но я все еще не работал. У меня модальное окно с checkbox Я хочу, чтобы при открытии модальности проверка или снятие флажка checkbox должна основываться на значении базы данных. (У меня есть уже работающие с другими полями формы.) Я начал проверять его, но это не сработало.

Мой html div:

<div id="fModal" class="modal" >
    ...
    <div class="row-form">
        <div class="span12">
            <span class="top title">Estado</span>

          <input type="checkbox"  id="estado_cat" class="ibtn">
       </div>
    </div>             
</div>

и jquery:

$("#estado_cat").prop( "checked", true );

Я также пробовал с attr, а другие видели здесь на форумах, но никто, похоже, не работает. Может ли кто-нибудь указать мне правильный путь?

EDIT: хорошо, я действительно что-то пропустил здесь... Я могу проверить/снять флажок с помощью кода, если флажок находится на странице, но это в модальном окне, я не могу. Я пробовал десятки разных способов...

У меня есть ссылка, которая должна открыть модальную:

и jquery для "прослушивания" клика и выполнения некоторых операций, таких как заполнение некоторых текстовых полей данными, поступающими из базы данных. Все работает так, как я хочу, но проблема в том, что я не могу установить checkbox check/unchecked с помощью кода. помогите пожалуйста!

$(function() {
 $(".editButton").click(function(){
       var id = $(this).data('id'); 
       $.ajax({
          type: "POST",
          url: "process.php",
          dataType:"json",
          data: { id: id, op: "edit" },
        }).done(function( data ) {
//the next two lines work fine, i.e., it grabs the value from database and fills the textboxes
          $("#nome_categoria").val( data['nome_categoria'] );
          $("#descricao_categoria").val( data['descricao_categoria'] );
//then I tried to set the checkbox checked (because its unchecked by default) and it does not work
           $("#estado_cat").prop("checked", true);
        $('#fModal').modal('show');
});
    evt.preventDefault();
    return false;
    });     
});

Ответ 1

вам нужно использовать функцию "prop":

.prop('checked', true);

Перед jQuery 1.6 (см. user2063626 ответ):

.attr('checked','checked')

Ответ 2

Принимая все предложенные ответы и применяя их к моей ситуации - пытаясь проверить или снять флажок на основе полученного значения true (если нужно установить флажок) или false (не следует устанавливать флажок) - я пробовал все выше, и нашел, что использование правильных решений .prop( "checked", true) и .prop( "checked", false).

Я не могу добавлять комментарии или ответы еще, но я чувствовал, что это достаточно важно, чтобы добавить к разговору.

Вот длинный код для модификации полного календаря, который говорит, что если полученное значение "allDay" истинно, установите флажок с идентификатором "even_allday_yn":

if (allDay)
{
    $( "#even_allday_yn").prop('checked', true);
}
else
{
    $( "#even_allday_yn").prop('checked', false);
}

Ответ 3

Чувак попробуй под кодом:

$("div.row-form input[type='checkbox']").attr('checked','checked')

ИЛИ

$("div.row-form #estado_cat").attr("checked","checked");

ИЛИ

$("div.row-form #estado_cat").attr("checked",true);

Ответ 4

Поскольку вы находитесь в модальном окне (будь то динамическое или на странице), вы можете использовать следующий код для достижения своей цели: (я столкнулся с той же проблемой на своем сайте, и именно так я ее исправил)

HTML:

<div class="content-container" style="text-align: right;">
    <input type="checkbox" id="QueryGroupCopyQueries">
    <label for="QueryGroupCopyQueries">Create Copies</label>                                                   
</div>

CODE:

$.each(queriesToAddToGroup, function (index, query) {
    if (query.groupAddType === queriesGroupAddType.COPY) {

        // USE FIND against your dynamic window and PROP to set the value
        // if you are using JQUERY 1.6 or higher.
        $(kendoWindow).find("input#QueryGroupCopyQueries").prop("checked", true);

        return;
    }

В приведенном выше "kendoWindow" находится мое окно (мое динамическое, но я также делаю это при добавлении к элементу непосредственно на странице). Я просматриваю массив данных ( "queriesToAddToGroup" ), чтобы увидеть, есть ли у каких-либо строк атрибут COPY. Если это так, я хочу включить флажок в окне, которое устанавливает этот атрибут, когда пользователь сохраняет из этого окна.

Ответ 5

"checked" атрибут "галочки" установите флажок, как только он появится. Чтобы проверить/снять флажок, вам нужно установить/отключить атрибут.

Для проверки флажка:

$('#myCheckbox').attr('checked', 'checked');

Для снятия флажка:

$('#myCheckbox').removeAttr('checked');

Для проверки проверенного состояния:

if ($('#myCheckbox').is(':checked'))

Надеюсь, что это поможет...

Ответ 6

.attr("checked",true)
.attr("checked",false)

будет работать. Убедитесь, что true и false не входят в кавычки.

Ответ 7

Вы можете написать, как указано ниже.

HTML

<input type="checkbox"  id="estado_cat" class="ibtn">

JQuery

$(document).ready(function(){
    $(".ibtn").click(function(){
        $(".ibtn").attr("checked", "checked");
    });
});

Надеюсь, он сработает для вас.

Ответ 8

$("#divParentClip").find("#subclip_checkbox")[0].checked=true;

Найти будет возвращать массив, поэтому используйте [0], чтобы получить, даже если есть только один элемент

если вы не используете find,

$("#subclip_checkbox").checked=true;

это отлично работало в Mozilla Firefox для меня

Ответ 9

Работал для меня:

$checkbok.prop({checked: true});

Ответ 10

Попробуйте это, так как вы используете jQuery UI, вероятно (если не прокомментировать)

 $("#fModal" ).dialog({
     open: function( event, ui ) {

     if(//some hidden value check which stores the DB value==expected value for
      checking the Checkbox)

         $("div.row-form input[type='checkbox']").attr('checked','checked');

    }
   });

Ответ 11

Вы пробовали использовать $("#estado_cat").checkboxradio("refresh") в своем флажке?

Ответ 12

Это работает.

 $("div.row-form input[type='checkbox']").attr('checked','checked');

Ответ 13

Это происходит потому, что вы с новейшей версией jquery attr('checked') возвращаете 'checked', а prop('checked') возвращает true.

Ответ 14

Если вы хотите использовать эту функцию для сценария GreaseMonkey для автоматической установки флажка на странице, имейте в виду, что простая установка свойства флажка может не вызвать связанное действие. В этом случае, "щелкнув" флажок, вероятно, будет (и установить свойство флажка также).

$("#id").click()

Ответ 15

Я тоже столкнулся с этой проблемой.

и вот мой старый код не работает

if(data.access == 'private'){
     Jbookaccess.removeProp("checked") ; 
    //I also have tried : Jbookaccess.removeAttr("checked") ;
 }else{
    Jbookaccess.prop("checked", true)
}

вот мой новый код, который теперь работает:

if(data.access == 'private'){
     Jbookaccess.prop("checked",false) ;
 }else{
    Jbookaccess.prop("checked", true)
}

поэтому ключевой момент перед тем, как он сработает, убедитесь, что проверенное свойство существует и не удаляется.

Ответ 16

Установите флажок после загрузки модального окна. Я думаю, вы устанавливаете флажок перед загрузкой страницы.

$('#fModal').modal('show');
$("#estado_cat").attr("checked","checked");

Ответ 17

Я знаю, что это требует решения Jquery, но я просто хотел бы отметить, что очень просто переключить это в простом javascript.

var element = document.getElementById("estado_cat");
element.checked = 1;

Это будет работать во всех текущих и будущих версиях.