Ir para conteúdo

Arquivado

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

Hugo Borges_120734

evendo onLoad não funciona

Recommended Posts

Galera montei um formulário onde o usuário preenche o input numParcelas com a quantidade de parcelas, o java monta o formulário com os campos.

 

O problema e que quero que ele comesse sempre exibindo 1 campo, e quando o usuário mudar, ele remonta o formulário. Porem o que ocorre e que ele sempre começa sem campo, sendo necessário o usuário colocar um valor para gerar o form.

 

Segue o código:


<script type="text/javascript">

    // Formata para padram 0,000,000.00 
    String.prototype.formatMoney = function() {
  	var v = this;

  	if(v.indexOf('.') === -1) {
     	 v = v.replace(/([\d]+)/, "$1,00");
  	}

  	v = v.replace(/([\d]+)\.([\d]{1})$/, "$1,$20");
  	v = v.replace(/([\d]+)\.([\d]{2})$/, "$1,$2");
  	v = v.replace(/([\d]+)([\d]{3}),([\d]{2})$/, "$1.$2,$3");
  	v = v.replace(/([\d]+)([\d]{3}).([\d]{3}),([\d]{2})$/, "$1.$2.$3,$4");

 	 return v;
  };


    function adicionarCampos() {
        var objSelect = document.getElementById("numParcelas");
        var i;
        var linha = "";

        var v = ( 100 / objSelect.value);

        // Colocar valor no padram 0,000,000.00 
        v = v.toFixed(2);
        v = String(v).formatMoney();

        // Cria os input
        for (i = 0; i < objSelect.value; i++) {

            // Calcula as datas
            var data = new Date();

            var dia = data.getDate();
            if (dia.toString().length === 1) {
                dia = "0" + dia;
            }

            data.setMonth(data.getMonth() + i);
            var mes = data.getMonth() + 1;
            if (mes.toString().length === 1) {
                mes = "0" + mes;
            }

            var minhaData = dia + '/' + mes + '/' + data.getFullYear();

            linha += "<input type='text' name='valor" + i + "' id='linha" + i + "' value='" + v + "' class='form_campos_numeros'> <input type='text' name='data" + i + "' id='linha" + i + "' value='" + minhaData + "' class='form_campos_numeros' maxlength='10' ondblclick=\"javascript:popdate('document.form.data" + i + "','pop" + i + "','150',document.form.data" + i + ".value)\"  OnKeyUp='mascaraData(this);'><span id='pop" + i + "' style='position:absolute'></span><br>";
        }


        document.getElementById("txtParcelas").innerHTML = linha;

    }

</script>

<input id="numParcelas" type="text" name="numParcelas" OnKeyUp="adicionarCampos()" placeholder=" PARCELAS*" maxlength="2" value='1'>
                    

<span id="txtParcelas"></span>

Se alguém puder me ajudar, fico muito grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E onde vc usa o onload?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui funcionou no onload:

 

<script type="text/javascript">

// Formata para padram 0,000,000.00
String.prototype.formatMoney = function() {
var v = this;

if(v.indexOf('.') === -1) {
   v = v.replace(/([\d]+)/, "$1,00");
}

v = v.replace(/([\d]+)\.([\d]{1})$/, "$1,$20");
v = v.replace(/([\d]+)\.([\d]{2})$/, "$1,$2");
v = v.replace(/([\d]+)([\d]{3}),([\d]{2})$/, "$1.$2,$3");
v = v.replace(/([\d]+)([\d]{3}).([\d]{3}),([\d]{2})$/, "$1.$2.$3,$4");

return v;
};


function adicionarCampos() {
    var objSelect = document.getElementById("numParcelas");
    var i;
    var linha = "";

    var v = ( 100 / objSelect.value);

    // Colocar valor no padram 0,000,000.00
    v = v.toFixed(2);
    v = String(v).formatMoney();

    // Cria os input
    for (i = 0; i < objSelect.value; i++) {

        // Calcula as datas
        var data = new Date();

        var dia = data.getDate();
        if (dia.toString().length === 1) {
            dia = "0" + dia;
        }

        data.setMonth(data.getMonth() + i);
        var mes = data.getMonth() + 1;
        if (mes.toString().length === 1) {
            mes = "0" + mes;
        }

        var minhaData = dia + '/' + mes + '/' + data.getFullYear();

        linha += "<input type='text' name='valor" + i + "' id='linha" + i + "' value='" + v + "' class='form_campos_numeros'> <input type='text' name='data" + i + "' id='linha" + i + "' value='" + minhaData + "' class='form_campos_numeros' maxlength='10' ondblclick=\"javascript:popdate('document.form.data" + i + "','pop" + i + "','150',document.form.data" + i + ".value)\"  OnKeyUp='mascaraData(this);'><span id='pop" + i + "' style='position:absolute'></span><br>";
    }


    document.getElementById("txtParcelas").innerHTML = linha;
}

window.onload = adicionarCampos;
</script>

<input id="numParcelas" type="text" name="numParcelas" OnKeyUp="adicionarCampos()" placeholder=" PARCELAS*" maxlength="2" value='1'>


<span id="txtParcelas"></span>

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.