Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EduardaMaiden

Após demarcar checkbox no IE com jQuery não marca mais.

Recommended Posts

Olá! Então gente, não sei se alguém aqui já passou por isto, o probleminha que estou tendo é o seguinte, eu tenho um formulário de cadastro e uma lista de produtos castrados, quando seleciono um produto abre o formulário de cadastro com os dados deste produto preenchidos para ser atualizado. No Firefox e no Chrome está ok, abre o formulários com os dados preenchidos e os checkboxes marcados, porém no IE os cheboxes não estão vindo marcados. Sempre usei o .reset do formulário para apagar qualquer valor que esteja lá, porém neste caso não funcionou, por isto estou usando o each para percorres os checkboxes e desmarcar eles e depois marcar com as opções corretas.

Este é o meu código JS:


function remover(){
$("input[type='checkbox']").each(function(){
       $(this).attr("checked", false);
    });
    frmNovaOp.reset();
}


function editaInd(img){
    remover();
    var id= img.id;
    var url= './php/editaOpcoes.php?idInd='+id;
    $.getJSON(url, function(data) {
        $.each(data.camposInd, function (){
            
            
            var meses= this['meses'].split('; ');
            meses.forEach(function(each){
                $("input[name='meses[]'][value='"+each+"']").attr("checked", "checked");
            });
            
        });
    });
    
    $( "#fsDadosOp" ).append('<input type="hidden" id="idOp" name="idOp" value="'+id+'" >');
    $("#divDlgNovaOp").attr({ 'title': 'Editar Opção: '});
    $("#divDlgNovaOp").dialog({
            show: 'clip', 
            hide: 'clip',
            width: '800'
    });
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A dúvida é a seguinte, estou desmarcando os checkboxes que tem um formulário pois vou marcar eles com outros valores. O código que postei funcionou em tudo quanto é navegador, menos no IE (tinha que ser!!!), no IE desmarcou os checkboxes, mas não marcou depois. Minha dúvida então é, como fazer funcionar no IE?

 

Código que usei para desmarcar os checkboxes:

$("input[type='checkbox']").each(function(){
       $(this).attr("checked", false);
    });
    frmNovaOp.reset();
}
Código que usei para marcar os checkboxes:
var url= './php/editaOpcoes.php?idInd='+id;
    $.getJSON(url, function(data) {
        $.each(data.camposInd, function (){
            
            
            var meses= this['meses'].split('; ');
            meses.forEach(function(each){
                $("input[name='meses[]'][value='"+each+"']").attr("checked", "checked");
            });
            
        });
    });

Compartilhar este post


Link para o post
Compartilhar em outros sites

É o código que eu propus aqui ne?!

 

http://forum.imasters.com.br/topic/520792-verificando-existencia-de-um-valor-em-um-json-com-javascriptjquery/

 

Vcs 2 trabalham juntos ? :lol:

 

 

Provavelmente o IE não reconhece o .forEach, veja na barra de status do IE qual erro ele mostra. Troque esse loop por outro, ou então procure um polyfill para ele

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentamos trabalhar juntos, hehehe. Sim, foi esse código que você postou. Então, fui nu depurador de JS do IE e não acusou nenhum erro lá. Acho que não é problema no foreach, pois se eu não executar o código abaixo para desmarcar os checkboxes:

$("input[type='checkbox']").each(function(){
       $(this).attr("checked", false);
    });
    frmNovaOp.reset();
}

O foreach que marca os checkboxes funciona normalmente, porém ele não reseta o que tinha sido marcado antes...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque

$(this).attr("checked", false);

por

$(this).prop("checked", false);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.