Ir para conteúdo
Fórum Script Brasil

LeoMoura

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre LeoMoura

LeoMoura's Achievements

0

Reputação

  1. É o seguinte; Eu tenho 3 textfiel que somam valores e exibem num quarto TEXTFIELD. As funções em JAVASCRIPT funcionam perfeitamente! O problema é que agora eu criei um botão pra inserir nomes, então cada vez que o botão é clicado, eu gero um SELECT e os mesmos TEXTFIELDS que citei acima por meio de DOM. Só que quando faço isso, os dito cujos não chamam mais as funções que fazem a formatação dos valores. Segue o Código. <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>&lt;script type="text/javascript"> function maskIt(w,e,m,r,a){ // Cancela se o evento for Backspace if (!e) var e = window.event if (e.keyCode) code = e.keyCode; else if (e.which) code = e.which; // Variáveis da função var txt = (!r) ? w.value.replace(/[^\d]+/gi,'') : w.value.replace(/[^\d]+/gi,'').reverse(); var mask = (!r) ? m : m.reverse(); var pre = (a ) ? a.pre : ""; var pos = (a ) ? a.pos : ""; var ret = ""; if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length) return false; // Loop na máscara para aplicar os caracteres for(var x=0,y=0, z=mask.length;x<z && y<txt.length;){ if(mask.charAt(x)!='#'){ ret += mask.charAt(x); x++; } else{ ret += txt.charAt(y); y++; x++; } } // Retorno da função ret = (!r) ? ret : ret.reverse() w.value = pre+ret+pos; } // Novo método para o objeto 'String' String.prototype.reverse = function(){ return this.split('').reverse().join(''); }; function teclas(event){ if(((event.keyCode < 96) || (event.keyCode > 105)) && ((event.keyCode < 48) || (event.keyCode > 57)) ) { campo.value = campo.value.replace(String.fromCharCode(event.keyCode).toLowerCase(),""); } } function numMoeda(event,campo){ teclas(campo); str = campo.value; while(str.search(",") != -1) str = str.replace(",",""); i = 0; while(i< str.length){ if(str.substr(i,1) == ".") str = str.replace(".",""); i++; } part1 = str.substr(0,str.length - 2); while(part1.search(" ") != -1) part1 = part1.replace(" ",""); part2 = str.substr(str.length - 2,2); res = ""; i = part1.length; sob = i % 3; if((sob != 0) && (i > 2)) res = part1.substr(0,sob) + "."; else res = part1.substr(0,sob); j = 1; part1 = part1.substr(sob); i = 0; while(i < part1.length){ if(j == 3){ if(i + 1 == part1.length) res = res + part1.substr(i-2,3); else res = res + part1.substr(i-2,3) + "."; } i++; j = j<3?j+1:1; } campo.value = res + "," + part2; } function soma() { campo1 = document.form1.diarias.value; campo1 = campo1.replace(/[.]/g, ""); campo1 = campo1.replace(/[,]/g, ""); campo2 = document.form1.passagens.value; campo2 = campo2.replace(/[.]/g, ""); campo2 = campo2.replace(/[,]/g, ""); campo3 = document.form1.inscricao.value; campo3 = campo3.replace(/[.]/g, ""); campo3 = campo3.replace(/[,]/g, ""); if(campo1!="" && campo2!="" && campo3!="") { total = parseFloat(campo1)+parseFloat(campo2)+parseFloat(campo3); document.form1.total.value=parseFloat(total); } } x = 1; function criaDiv() { var campo; campo="<select name='participante["+x+"]' id='participante'>"; <?php $sql_alunos = mysql_query("SELECT * FROM aluno ORDER BY nomeAluno"); $reg_aluno = mysql_num_rows($sql_alunos); for($f=0;$f<$reg_aluno;$f++){ $nome_aluno = mysql_result($sql_alunos,$f,'nomeAluno'); $cpf = mysql_result($sql_alunos,$f,'cpfAluno'); $id_aluno = mysql_result($sql_alunos,$f,'idAluno'); ?> campo += "<option value='<?php echo $id_aluno;?>'><?php echo $nome_aluno; ?> - <?php echo $cpf; ?></option>"; <?php } ?> campo += "</select>"; campo += "<input name='diarias["+x+"]' type='text' id='diarias' onkeyup='soma();numMoeda(event,this);' size='12' value=''/>"; campo += "<input name='passagens["+x+"]' type='text' id='passagens' onkeyup='soma();numMoeda(event,this);' size='12' value=''/>"; campo += "<input name='inscricao["+x+"]' type='text' id='inscricao' onkeyup='soma();numMoeda(event,this);' size='12' value=''/>"; campo += "<input name='total["+x+"]' type='text' id='diarias' onkeyup='soma();numMoeda(event,this);' size='12' value=''/>"; novaDiv = document.createElement("div"); novaDiv.setAttribute("className","formato"); novaDiv.setAttribute("class","formato"); local = document.getElementById("itens"); local.appendChild(novaDiv).innerHTML = campo; x = x + 1; //Incremento } </script> Só pra informação, os campos são exibidos corretamente na DIV, apenas as funções não estão sendo chamadas.
×
×
  • Criar Novo...