Validar campos text criados dinamicamentes e valida-los

0 respostas
I

Boa tarde amigos,

Tenho um javascript que cria uma linha por vez com 4 campos text dinamicamente no formulario, ate ai blz… o que estou querendo fazer agora é validar esses campos e mulplicar 2 campos, pois o usuario informa a qtd de um produto, o preço unitario e o outro campo seria o valor total, q é resultado da multiplicação desses 2 campos… As 2 funções (um JS que mulpiplica e o outro que formato o text em formato moeda) javascript que tenho, funcionam normalmente para somente uma linha, mas quando adiciono mais de uma, eles não funcionam… queria saber se alguem consegue adaptar esses scripts para esta situação… abaixo vão os JS…

JS adicionaCampoFormulario:

<script language="JavaScript" type="text/javascript">   

//Não altere esses valores!
var iCount = 0;
var iCampos = 1;
var hidden1; 

//Definindo quantos campos poderão ser criados (máximo);
var iCamposTotal = 20; 

//Função que adiciona os campos;
function addInput() {   
if (iCampos <= iCamposTotal) {
    hidden1 = document.getElementById("hidden1");
    
    //Criando uma variável que armazenará as informações da linha que será criada.
    //Os campos estão sendo colocados no interior de uma div, pois a linha contém muitos elementos;
    //Basta excluir a div, para excluir todos os elementos da linha;
    var texto = "<div id='linha"+iCount+"'><input type='text' name='codProduto' size='7' id='texto"+iCount+"' class='text' value=''>&nbsp;<input type='text' name='qtdItem' size='7' id='texto"+iCount+"' class='text' value=''>&nbsp;<input type='text' name='valorUnitario' size='7' id='texto"+iCount+"' class='text' onKeyPress='return(FormataReais(this,'.',',',event))' onblur='Multiplica();' value=''>&nbsp;<input type='text' name='valorTotalItem' size='7' id='texto"+iCount+"' class='text' value=''>&nbsp;<input type='button' value='Remover' onClick='removeInput(\"linha"+iCount+"\")'></div>";      
  
    //Capturando a div principal, na qual os novos divs serão inseridos:
    var camposTexto = document.getElementById('camposTexto');   
    camposTexto.innerHTML = camposTexto.innerHTML+texto;
      
iCount++;
iCampos++;
}   
}
   
//Função que remove os campos;
function removeInput(e) {
   var pai = document.getElementById('camposTexto');
   var filho = document.getElementById(e);
   hidden1 = document.getElementById("hidden1");
   var campoValor = document.getElementById("texto"+e.substring(5)).value;
   var lastNumber = hidden1.value.substring(hidden1.value.lastIndexOf(",")+1);

   if(confirm("O campo que contém o valor:\n» "+campoValor+"\nserá excluído permanentemente!\n\nDeseja prosseguir?")){
        var removido = pai.removeChild(filho);
        //Removendo o valor de hidden1:
        if (e.substring(5) == hidden1.value) {
            hidden1.value = hidden1.value.replace(e.substring(5),"");
        }else if(e.substring(5) == lastNumber) {
            hidden1.value = hidden1.value.replace(","+e.substring(5),"");
        }else{
            hidden1.value = hidden1.value.replace(e.substring(5)+",","");        
        }
    iCampos--;
    }
}
</script>

JS calculaValorTotalItem:

<script language="JavaScript" type="text/javascript">

var trocaV = /,/g;
var trocaP = /\./g;

function Multiplica() {
    A = document.estoqueForm.qtdItem.value.replace(trocaV,".");
    B = document.estoqueForm.valorUnitario.value.replace(trocaV,".");
    
    if ((isNaN(A)) || (isNaN(B))) {
 alert("Preencha os números corretamente!");
    } else {
 Total = (parseFloat(A) * parseFloat(B));
 if (Total > 0) {
     var TotalGeral = Total.toFixed(2);
	 document.estoqueForm.valorTotalItem.value = TotalGeral.toString().replace(trocaP,",");
 } else {
     document.estoqueForm.valorTotalItem.value = "";
 }
    }
}
</script>

JS formataMoeda:

<script language="JavaScript" type="text/javascript">
function FormataReais(fld, milSep, decSep, e)
        {
            var sep = 0;
            var key = '';
            var i = j = 0;
            var len = len2 = 0;
            var strCheck = '[telefone removido]';
            var aux = aux2 = '';
            var whichCode = (window.Event) ? e.which : e.keyCode;
            if (whichCode == 13) return true;
                key = String.fromCharCode(whichCode);  // Valor para o código da Chave
            if (strCheck.indexOf(key) == -1) return false;  // Chave inválida
                len = fld.value.length;
            for(i = 0; i < len; i++)
                if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
            aux = '';
            for(; i < len; i++)
                if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
            aux += key;
            len = aux.length;
            if (len == 0) fld.value = '';
            if (len == 1) fld.value = '0'+ decSep + '0' + aux;
            if (len == 2) fld.value = '0'+ decSep + aux;
            if (len > 2)
            {
                aux2 = '';
                for (j = 0, i = len - 3; i >= 0; i--)
                {
                    if (j == 3)
                    {
                        aux2 += milSep;
                        j = 0;
                    }
                    aux2 += aux.charAt(i);
                    j++;
                }
                fld.value = '';
                len2 = aux2.length;
                for (i = len2 - 1; i >= 0; i--)
                    fld.value += aux2.charAt(i);
                fld.value += decSep + aux.substr(len - 2, len);
            }
            return false;
        }
</script>

Algum amigo poderia me ajudar???

Vlw…

Criado 15 de fevereiro de 2009
Respostas 0
Participantes 1