Update fields with Javascript

5

The problem

I am making a request Ajax to return a data from a table. He arrives and enters this function to begin the foreach of the information, but two of them are getting "lost" on the way. I gave an alert on value['outras_atividades'] before it entered the if , and it showed the text of that field normally, but was to enter inside if that it was undefined , ie, I can not fill the fields of text with those values.

My Code

Ajax

$('#verificaEntidade').click(function () {
        $.ajax({
            type: "POST",
            dataType: "json",
            url : "retornaEntidade",
            data: $('#formVerifEnt').serialize(),
            success : function(msg){
                if(msg.status == 0) {
                    alert("O formulário dessa entidade ainda não foi preenchido !");
                }
                else {
                    msg.errorMsg.forEach(ShowResults);
                }
            },
            error:function (xhr, ajaxOptions, thrownError) {
                 alert("Erro no Processamento dos Dados. Entre em contato com o setor de Tecnologia e informe a mensagem abaixo:\n"+xhr.responseText);
            }
        });

    });

Function to mark form fields

function ShowResults(value, index, ar) {
        var i = 0;

        /*Faz a verificação para atualizar os checkboxes das atividades realizadas*/
        if(value['codigo_atividade']) {
            for(i = 1; i <= 11; i++) {
                if(value['codigo_atividade'] == i) {
                    $('#atv'+ i).prop('checked', true);
                    if(value['codigo_atividade'] == 11) {
                        $('input[name=txtOutrasAtividades]').val(value['outras_atividades']);
                    }
                }
            }
        }

        /*Faz a verificação para atualizar os checkboxes dos públicos atendidos*/
        if(value['codigo_publico']) {
            for(i = 1; i <= 9; i++) {
                if(value['codigo_publico'] == i) {
                    $('#pub'+ i).prop('checked', true);
                    if(value['codigo_publico'] == 9) {
                        $('input[name=txtOutrosPublicos]').val(value['outros_publicos']);
                    }
                }
            }
        }
    }
    
asked by anonymous 15.05.2015 / 21:02

1 answer

2

Your error is that you are manipulating msg.errorMsg.forEach(ShowResults);

msg.errorMsg.forEach will not pass to its function if it does not return error. You should just call the ShowResults(value) function, containing the result of your json. This will handle the side of the function that invoked the passed value.

The errorMsg for the form with error. If there is no error in the position the message is undefined

    
19.05.2015 / 20:33