[Resolvido] fazer calculo pelo firefox
boa tarde
estou criando um codigo em javascript em uma pagina asp, que faz calculos porem ela sera usada somente pelo firefox, a soma e a subtração funcionaram perfeitamente, a multiplicacao e a divisao nao aceitam as casas decimais o que gera erro no resultado, outra coisa que nao consegui fazer é aparecer o valor da soma dos tres resultados. segue o codigo para que possa ser analisado.
desde ja agradeço
<script language="JavaScript" type="text/javascript">
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.form.valor1.value;
campo1 = campo1.replace(/[.]/g, "");
campo1 = campo1.replace(/[,]/g, "");
campo2 = document.form.valor2.value;
campo2 = campo2.replace(/[.]/g, "");
campo2 = campo2.replace(/[,]/g, "");
if(campo1!="" && campo2!="") {
total = parseFloat(campo1)+parseFloat(campo2);
document.form.total.value=parseFloat(total);
}
campo3 = document.form.valor3.value;
campo3 = campo3.replace(/[.]/g, "");
campo3 = campo3.replace(/[,]/g, "");
campo4 = document.form.valor4.value;
campo4 = campo4.replace(/[.]/g, "");
campo4 = campo4.replace(/[,]/g, "");
if(campo3!="" && campo4!="") {
total1 = parseFloat(campo3)-parseFloat(campo4);
document.form.total1.value=parseFloat(total1);
}
campo5 = document.form.valor5.value;
campo5 = campo5.replace(/[.]/g, "");
campo5 = campo5.replace(/[,]/g, "");
campo6 = document.form.valor6.value;
campo6 = campo6.replace(/[.]/g, "");
campo6 = campo6.replace(/[,]/g, "");
if(campo5!="" && campo6!="") {
total2 = parseFloat(campo5)*campo6;
document.form.total2.value=parseFloat(total2);
}
campo7 = document.form.valor7.value;
campo7 = campo7.replace(/[.]/g, "");
campo7 = campo7.replace(/[,]/g, "");
campo8 = document.form.valor8.value;
campo8 = campo8.replace(/[.]/g, "");
campo8 = campo8.replace(/[,]/g, "");
if(campo7!="" && campo8!="") {
total3 = parseFloat(campo7)/campo8;
document.form.total3.value=parseFloat(total3);
}
}
</script>
<form name="form">
SOMA<p>
<input type="text" name="valor1" value="" onkeyup="soma();numMoeda(event,this)">
<input type="text" name="valor2" value="" onkeyup="soma();numMoeda(event,this);numMoeda(event,total);">
<input type="text" name="total" value=""></p>
<p>
SUBTRAÇÃO<p>
<input type="text" name="valor3" value="" onkeyup="soma();numMoeda(event,this);">
<input type="text" name="valor4" value="" onkeyup="soma();numMoeda(event,this);numMoeda(event,total1);">
<input type="text" name="total1" value=""><p>
MULTIPLICAÇÃO<p>
<input type="text" name="valor5" value="" onkeyup="soma();numMoeda(event,this);">
<input type="text" name="valor6" value="" onkeyup="soma();numMoeda(event,this);numMoeda(event,total2);">
<input type="text" name="total2" value=""><p>
DIVISÃO<p>
<input type="text" name="valor7" value="" onkeyup="soma();numMoeda(event,this);">
<input type="text" name="valor8" value="" onkeyup="soma();numMoeda(event,this);numMoeda(event,total3);">
<input type="text" name="total3" value="">
<p>
TOTAL = SOMA DE TODOS OS RESULTADOS<p>
<input type="text" name="total4" value=""></form></p>Discussão (4)
Carregando comentários...