2
respostas

inputs dinâmicos + jquery + servlet

Tenho aqui um select com as options: "A vista, 1x, 2x e 3x". Baseado no valor desse select é que serão gerados inputs que serão appendados em uma div. Os campos são gerados de dois em dois. Um deles contém o valor da parcela e o outro contém um Date de pagamento da parcela.

A duvida é: Como faço para submeter campos para uma servlet via request e como dar getParameter neles ? Agradeço desde já.

2 respostas

Boa noite, Aluízio! Como vai?

Os campos do formulário são enviados normalmente para o endereço atribuído para a propriedade action da tag form quando o botão de submit do formulário é acionado. Basta vc utilizar a propriedade name dos campos para dar uma etiqueta para as informações de modo a recuperar elas depois na sua Servlet.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Obrigado pela ajuda professor.

Até ai tudo bem, mas no meu caso, eu não tenho certeza de quantos campos serão. Pode ser 1 campo se o pagamento for a vista e pode ser 3 campos se o pagamento for parcelado em 3x. A propriedade name dos inputs é um array:

name="nome [ i ]"

O .js ficou assim:

$(document).ready(function(){
    $("#parcela").change(function () {

        var valor = $("#valor").val();

        // Obtém a data/hora atual
        var data = new Date();

        var qtdParcela = $("#parcela").val();
        var valParcela = (valor / qtdParcela).toFixed(2);;

        //Calcula o resto com retorno decimal
        var resto = (valor - (valParcela * qtdParcela)).toFixed(2);
        // limpa inputs
        $("#divParcelas").empty();

        //gera inputs
        for(var i = 1; i <= qtdParcela; i++){

            // Guarda cada pedaço em uma variável
            var dia = data.getDate();           
            var mes = data.getMonth()+1;          
            var fullAno = data.getFullYear();       

            //ajusta o mes para 2 caracteres
            var fullMes = ("00" + mes).slice(-2);

            //ajusta o dia para 2 caracteres
            var fullDia = ("00" + dia).slice(-2);

            if(i == qtdParcela){
                valParcela = (parseFloat(valParcela)+parseFloat(resto)).toFixed(2);
            }

            // concatena
            var stringData =  fullAno + '-' + fullMes + '-' + fullDia;

            $("#divParcelas").append("<label> - "+i+"° parcela: <label/>", "<input name='parcelaValor["+i+"]' 
 id='parcelaValor["+i+"]' value="+valParcela+">");
            $("#divParcelas").append("<label> - Data: <label/>","<input type='date'  name='parcelaData["+i+"]' 
 id='parcelaData["+i+"]' value="+stringData+">");
            $("#divParcelas").append("<br /><br />");

            data.setDate(data.getDate() + 31);
        }
    });
});

MInha pergunta está incompleta. Preciso submeter estes campos e preciso pegar o valor deles dentro da servlet. Desde já agradeço

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software