ti-enxame.com

jquery set checkbox checked

Eu já tentei todas as maneiras possíveis, mas ainda não consegui trabalhar. Eu tenho uma janela restrita com um checkbox Eu quero que quando o modal abre, o checkbox marcar ou desmarque deve basear-se em um valor de banco de dados. (Eu já trabalhei com outros campos de formulário.) Comecei a tentar verificá-lo, mas não funcionou.

Meu 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>

e o jquery:

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

Eu também tentei com attr, e outros vistos aqui nos fóruns, mas nenhum parece funcionar. Alguém pode me apontar o caminho certo?

EDIT: ok, eu estou realmente faltando alguma coisa aqui ... eu posso marcar/desmarcar usando o código se a caixa de seleção estiver na página, mas é na janela modal, eu não posso. Eu tentei dezenas de maneiras diferentes ...

Eu tenho um link que deveria abrir o modal:

e jquery para "ouvir" o clique e executar algumas operações como preencher algumas caixas de texto com dados provenientes do banco de dados. Tudo funciona como eu quero, mas o problema é que eu não posso definir checkbox marcada/desmarcada usando o código. ajuda por favor!

$(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;
    });     
});
387
psopa

você tem que usar a função 'prop':

.prop('checked', true);

Antes do jQuery 1.6 (veja user2063626's answer ):

.attr('checked','checked')
684
singe Batteur

Tomando todas as respostas propostas e aplicando-as à minha situação - tentando marcar ou desmarcar uma caixa de seleção com base em um valor recuperado de true (deve marcar a caixa) ou false (não deve marcar a caixa) - tentei todas as opções acima e descobriu que usar .prop ("verificado", true) e .prop ("verificado", falso ) foram a solução correta.

Ainda não posso adicionar comentários ou respostas, mas senti que isso era importante o suficiente para aumentar a conversa.

Aqui está o código de longhand para uma modificação de fullcalendar que diz que se o valor recuperado "allDay" for verdadeiro, marque a caixa de seleção com o ID "even_allday_yn":

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

Cara tente abaixo código:

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

OR

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

OR

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

Como você está em uma janela restrita (dinâmica ou na página), você pode usar o seguinte código para atingir sua meta: (Eu corri para o mesmo problema no meu site e é assim que eu o consertei)

HTML:

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

CÓDIGO:

$.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;
    }

No "kendoWindow" acima está minha janela (a minha é dinâmica, mas também faço isso quando adiciono um elemento diretamente na página). Eu estou circulando por uma matriz de dados ("queriesToAddToGroup") para ver se alguma linha tem um atributo de COPY. Nesse caso, quero ativar a caixa de seleção na janela que define esse atributo quando um usuário salva essa janela.

17
KeyOfJ

O atributo "checked" "assinala" a caixa de verificação assim que esta existir. Portanto, para marcar/desmarcar uma caixa de seleção, você deve definir/desmarcar o atributo.

Para marcar a caixa:

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

Para desmarcar a caixa:

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

Para testar o status verificado:

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

Espero que ajude...

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

funcionará.Certifique-se de que verdadeiro e falso não estão dentro das aspas.

11
user1849310

Você pode escrever como abaixo dado código.

HTML

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

jQuery

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

Espero que funcione para você.

5
Subir

Trabalhou para mim:

$checkbok.prop({checked: true});
3
Sergio Pulgarin
$("#divParentClip").find("#subclip_checkbox")[0].checked=true;

Find retornará array, então use [0] para obter o mesmo se houver apenas um item

se você não usar encontrar então

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

isso funcionou bem no Mozilla Firefox para mim

3
Arvin

Isso funciona.

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

Se você quiser usar essa funcionalidade para um script GreaseMonkey para marcar automaticamente uma caixa de seleção em uma página, lembre-se de que simplesmente definir a propriedade verificada pode não acionar a ação associada. Nesse caso, "clicar" provavelmente na caixa de seleção (e definir a propriedade marcada também).

$("#id").click()
2
lordcheeto

Você já tentou executar $("#estado_cat").checkboxradio("refresh") na sua caixa de seleção?

2
J2N

Isso ocorre porque você com a versão mais recente de jquery attr('checked') retorna 'checked' enquanto prop('checked') retorna true.

2
Rohan

Tente isso já que você está usando jQuery UI provavelmente (se não comentar)

 $("#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');

    }
   });
2
user1428716

Marque a caixa de seleção depois de carregar a janela modal. Acho que você está configurando a caixa de seleção antes de carregar a página.

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

Eu também encontrei esse problema.

e aqui está o meu velho não funciona código

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

aqui está o meu novo código que é trabalhado agora:

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

portanto, o ponto-chave é antes de funcionar, verifique se a propriedade verificada existe e não foi removida.

1
Eddy