Capturar valor hidden em um laço JQUERY

11/11/2017

0

Sou nova por aqui, gostaria de ajuda sobre como pegar um valor de um hidden que esta em um util. Preciso desse valor para enviar para a próxima tela, mas como ele esta em uma tabela com vários linhas, eu não estou conseguindo fazer isso. Preciso pegar esse valor no javascript.

A tela:
<div class="grupoLista">
            <util:tabela id="lista" colecao="${form.listaPrograma12}" paginar="true" indiceProperty="lerDe" totalRegistrosProperty="qtdTotalLista" tamanhoPagina="30" idxLinha="true">
                <util:coluna id="id" titulo="" propriedade="nuContrato" tipo="radio">
                    <input type="radio"     name="listaIndice"          value="$" />
                    <input type="hidden"    name="listanuContrato"      value="${lista.nuContrato}" />
                    <input type="hidden"    name="listanuStatus"        value="${lista.nuStatus}" />
                    <input type="hidden"    name="listanoStatus"        value="${lista.noStatus}"/>
                    <input type="hidden"    name="listanoEmpresa"       value="${lista.noEmpresa}"/>
                    <input type="hidden"    name="listanoGestor"        value="${lista.noGestor}"/>
                    <input type="hidden"    name="listadtAssina"        value="${lista.dtAssina}"/>
                    <input type="hidden"    name="listavlContrato"      value="${lista.vlContrato}"/>
                    <input type="hidden"    name="listavlDevolucao"     value="${lista.vlDevolucao}"/>
                    <input type="hidden"    name="listavlDev"   value="${lista.vlDev}"/>
                    <input type="hidden"    name="listanuEstagio"       value="${lista.nuEstagio}"/>
                    <input type="hidden"    name="listanoEstagioCont"   value="${lista.noEstagio}"/>
                </util:coluna>

        </div>

O JS

function listar(){
    var validado = true;
    if(!checkRadio()){
        mensagemAlerta("Selecione uma das opções na lista.", "INF");
        validado = false;
    }
    if(validado){
        var linSel = $("input[name=listaIndice]:checked").val();
        document.getElementById("nuContrato").value = $("#listanuContrato" + linSel).val();
        document.getElementById("nuStatus").value = $("#listanuStatus" + linSel).val();

        var idEstagio = $("input[name=listanuEstagio]" + linSel).val();
        document.getElementById("selEstagioCont").value = idEstagio;

        var noEstagio = $("input[name=listanoEstagioCont]").val();
        document.getElementById("noSelEstagioCont").value = noEstagio;


        submitForm("listarContratoDevolucao");
    }

}


No jsp é montada uma lista, uma tabela com várias linhas e colunas também. Eu seleciono uma linha através de um radio e aciono o botão para enviar o que selecionei. Eu preciso pega o campo listanuEstagio do que foi selecionado e jogar em outro hidden, pra quando acionar o botão enviar, esse valor permaneça para a próxima tela. A situação é: como capturar esse listanuEstagio já que ele faz parte de uma lista montada, com o código que fiz ele só esta retornando o valor da primeira linha
Priscila Braz

Priscila Braz

Responder

Posts

14/11/2017

Rander Freitas

Olá Priscila,

Para ter um entendimento melhor, seria bom se você enviasse o código do projeto inteiro zipado + script sql do banco de dados.

Mas pelo que entendi. Na linha:


var idEstagio = $("input[name=listanuEstagio]" + linSel).val();


Através do JQuery, você está selecionando um input pelo atributo name concatenando com a variável linSel.

Se a variável linSel for igual a 0, o resultado será:

var idEstagio = $("input[name=listanuEstagio]0").val();

Se a variável linSel for igual a 1, o resultado será:

var idEstagio = $("input[name=listanuEstagio]1").val();

Só você definiu o hidden como:

<input type="hidden" name="listanuEstagio" value="${lista.nuEstagio}" />

Ou seja, o código jQuery nunca irá funcionar, pois está selecionando o hidden com nome que não existe.

Ao invés de usar campos hidden, porque não usa variáveis de sessão para passar dados de uma página a outra ?

Aqui na Devmedia, temos um tutorial sobre isso:

https://www.devmedia.com.br/forum/sessoes-em-servlets-e-jsp-como-criar-e-controlar/565636
Responder

14/11/2017

Rander Freitas

Olá Priscila,

Para ter um entendimento melhor, seria bom se você enviasse o código do projeto inteiro zipado + script sql do banco de dados.

Mas pelo que entendi. Na linha:


var idEstagio = $("input[name=listanuEstagio]" + linSel).val();


Através do JQuery, você está selecionando um input pelo atributo name concatenando com a variável linSel.

Se a variável linSel for igual a 0, o resultado será:

var idEstagio = $("input[name=listanuEstagio]0").val();

Se a variável linSel for igual a 1, o resultado será:

var idEstagio = $("input[name=listanuEstagio]1").val();

Só você definiu o hidden como:

<input type="hidden" name="listanuEstagio" value="${lista.nuEstagio}" />

Ou seja, o código jQuery nunca irá funcionar, pois está selecionando o hidden com nome que não existe.

Ao invés de usar campos hidden, porque não usa variáveis de sessão para passar dados de uma página a outra ?

Aqui na Devmedia, temos um tutorial sobre isso:

https://www.devmedia.com.br/forum/sessoes-em-servlets-e-jsp-como-criar-e-controlar/565636

Valeu!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar