Ir para conteúdo
Fórum Script Brasil
  • 0

calculo de Preço * quantidade dando erro


rdf2806

Pergunta

Pessoal tenho esse seguinte java script, para fazer a conta de preço * Produto e mostrar o resultado de cada item, mas quando coloca virgula ele dá error"Nan" na multiplicação.Vocês poderia me ajudar, se não for muito encomodo deixar os nueros com formatação de R$.

var da = (document.all) ? 1 : 0;
    var pr = (window.print) ? 1 : 0;
    var mac = (navigator.userAgent.indexOf("Mac") != -1); 
    
    function printPage(){ 
        if (pr){ // NS4, IE5   
            window.print();
        }else if (da && !mac){ // IE4 (Windows)
            vbPrintPage();
        } else {// other browsers
            alert("Lo sentimos, Tu browser no soporta este método, imprimelo desde el menú");
        }  
        return;
    }
    function twoDigits(x){
        return Math.round(x*100)/100;
    }
    function calcular(i){


        //altura, largura, quantidade e metros quadrado
        quantidade = eval("document.form1.qtd" + i + ".value");
        preço = eval("document.form1.p" + i + ".value");

                
//window.alert('teste');
        total = twoDigits(quantidade * preço);
        eval("document.form1.t" + i + ".value = total;");
        
        
        
        calcular_total();
    }

    function calcular_total(){
        valorTotal = null;
        
        for(j=1; j<=63; j++){

            valor = eval("document.form1.t" + j + ".value");
            if(valor != ""){
//window.alert('teste');
              valorTotal += parseFloat(valor);

            }
            document.form1.total.value = twoDigits(valorTotal);
            
            
        }
    }

Ogrigado

Rodolfo

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

vlw jonathan mas nãi funfou.....

vou postar o codigo inteiro

eu tenho um q faz a mascara de dinheiro e outro q faz o calculo segue os dois e um exemplo:

mascara de dinheiro

<!--
function amf2005_BecameCurrency(cur,len)
{
   n='__0123456789';
   d=cur.value;
   l=d.length;
   r='';
   if (l > 0)
   {
        z=d.substr(0,l-1);
        s='';
        a=2;
        for (i=0; i < l; i++)
        {
                c=d.charAt(i);
                if (n.indexOf© > a)
                {
                        a=1;
                        s+=c;
                };
        };
        l=s.length;
        t=len-1;
        if (l > t)
        {
                l=t;
                s=s.substr(0,t);
        };
        if (l > 2)
        {
                r=s.substr(0,l-2)+'.'+s.substr(l-2,2);
        }
        else
        {
                if (l == 2)
                {
                        r='0.'+s;
                }
                else
                {
                        if (l == 1)
                        {
                                r='0.0'+s;
                        };
                };
        };
        if (r == '')
        {
                r='0.00';
        }
        else
        {
                l=r.length;
                if (l > 6)
                {
                        j=l%3;
                        w=r.substr(0,j);
                        wa=r.substr(j,l-j-6);
                        wb=r.substr(l-6,6);
                        if (j > 0)
                        {
                                w+='.';
                        };
                        k=(l-j)/3-2;
                        for (i=0; i < k; i++)
                        {
                                w+=wa.substr(i*3,3)+'.';
                        };
                        r=w+wb;
                };
        };
   };
   if (r.length <= len)
   {
        cur.value=r;
   }
   else
   {
        cur.value=z;
   };
   return 'ok';
}
function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
e o calculo q é o anterior q postei exemplo: uma parte da tabela
<tr class="tabelaPadrao1">

        <td height="22" class="xl28" colspan="4"><div align="left">
          <strong>1 -</strong>
          <select name="item1" class="geral_texto" id="item1"><option selected="selected">Selecione um Produto</option>
            <option>0102 - BOLINHO DE BACALHAU CRU 1 KG (MINI) 12 KG</option>
            <option>0171 - BOLINHO DE QUEIJO CRU 1 KG (MINI) 12 KG</option>
			<option>0188 - COXINHA DE FRANGO CRU 1 KG (MINI) 12 KG</option>
            <option>0355 - KIBE CRU 1 KG (MINI) 12 KG</option>
            <option>0676 - RISOLES DE CALABRESA C/ QUEIJO CRU 1 KG (MINI) 12 KG</option>
            <option>0379 - RISOLES DE CARNE CRU 1 KG (MINI) 12 KG</option>
            <option>0416 - RISOLES DE PALMITO CRU 1 KG (MINI) 12 KG</option>
            <option>0423 - RISOLES DE PIZZA CRU 1 KG (MINI) 12 KG</option>
			 <option> </option>
            <option>0447 - BOLINHO DE BACALHAU CRU 1 KG (GDE) 12 KG</option>
            <option>0515 - BOLINHO DE CARNE CRU 1 KG (GDE) 12 KG</option>
            <option>0454 - BOLINHO DE QUEIJO CRU 1 KG (GDE) 12 KG</option>
            <option>0461 - COXINHA DE FRANGO CRU 1 KG (GDE) 12 KG</option>
            <option>0508 - KIBE CRU 1 KG (GDE) 12 KG</option>
            <option>0539 - RISOLES DE CALABRESA C/ QUEIJO CRU 1 KG (GDE) 12 KG</option>
            <option>0553 - RISOLES DE PALMITO CRU 1 KG (GDE) 12 KG</option>
            <option>0560 - RISOLES DE PIZZA CRU 1 KG (GDE) 12 KG</option>
			<option> </option>
            <option>0201 - BOLINHO DE BACALHAU FRITO 1 KG (MINI) 12 KG</option>
            <option>0683 - BOLINHO DE QUEIJO FRITO 1 KG (MINI) 12 KG</option>
            <option>0089 - COXINHA DE FRANGO FRITO 1 KG (MINI) 12 KG</option>
            <option>0010 - EMPADA DE FRANGO ASSADO 1 KG (MINI) 10 KG</option>
            <option>0034 - EMPADA DE PALMITO ASSADO 1 KG (MINI) 10 KG</option>
            <option>0287 - ENROL. PRES/QUEIJO ASSADO 1 KG (MINI) 6 KG</option>
            <option>0331 - ESFIHA CALAB/QUEIJO ASSADO 1 KG (MINI) 6 KG</option>
            <option>0317 - ESFIHA DE CARNE ASSADO 1 KG (MINI) 6 KG</option>
            <option>0324 - ESFIHA DE FRANGO ASSADO 1 KG (MINI) 6 KG</option>
            <option>0362 - KIBE FRITO 1 KG (MINI) 12 KG</option>
            <option>0393 - RISOLES DE CALABRESA C/ QUEIJO FRITO 1 KG (MINI) 12 KG</option>
            <option>0386 - RISOLES DE CARNE FRITO 1 KG (MINI) 12 KG</option>
            <option>0409 - RISOLES DE PALMITO FRITO 1 KG (MINI) 12 KG</option>
            <option>0430 - RISOLES DE PIZZA FRITO 1 KG (MINI) 12 KG</option>
            <option>0478 - BOLINHO DE BACALHAU FRITO 1 KG (GDE) 12 KG</option>
            <option>0522 - BOLINHO DE CARNE FRITO 1 KG (GDE) 12 KG</option>		
            <option>0485 - BOLINHO DE QUEIJO FRITO 1 KG (GDE) 12 KG</option>
            <option>0126 - COXINHA DE FRANGO FRITO 1 KG (GDE) 12 KG</option>
            <option>0256 - EMPADA CALAB/QUEIJO ASSADO 1 KG (GDE) 10 KG</option>	
            <option>0591 - EMPADA FRANGO ASSADO 1 KG (GDE) 10 KG</option>
            <option>0607 - EMPADA FRANGO C/ REQUEIJÃO ASSADO 1 KG (GDE) 10 KG</option>
            <option>0584 - EMPADA PALMITO ASSADO 1 KG (GDE) 10 KG</option>
            <option>0646 - ENROL. PRES/QUEIJO ASSADO 1 KG (GDE) 6 KG</option>	
            <option>0300 - ESFIHA CALAB/QUEIJO ASSADO 1 KG (GDE) 6 KG</option>	
            <option>0614 - ESFIHA DE CARNE ASSADO 1 KG (GDE) 6 KG</option>
            <option>0621 - ESFIHA DE FRANGO ASSADO 1 KG (GDE) 6 KG</option>
            <option>0638 - ESFIHA DE FRANGO C/ REQUEIJAO ASSADO 1 KG (GDE) 6 KG</option>
            <option>0348 - KIBE FRITO 1 KG (GDE) 12 KG</option>
            <option>0546 - RISOLES DE CALABRESA C/ QUEIJO FRITO 1 KG (GDE) 12 KG</option>
            <option>0577 - RISOLES DE PALMITO FRITO 1 KG (GDE) 12 KG</option>
            <option>0492 - RISOLES DE PIZZA FRITO 1 KG (GDE) 12 KG</option>
			<option> </option>
            <option>0072 - PAO DE QUEIJO 1 KG (20GR) 12 KG</option>
            <option>0294 - PAO DE QUEIJO 1 KG (90GR) 12 KG</option>
            <option>0065 - PAO DE QUEIJO 400 GR 12 KG</option>
			<option> </option>
            <option>0041 - RISOLES DE CARNE MINI FRITO 400GR 12 KG</option>
            <option>0096 - KIBE MINI FRITO 400GR 12 KG</option>
            <option>0058 - COXINHA DE FRANGO MINI FRITO 400GR 12 KG</option>
            <option>0133 - BOLINHO DE QUEIJO MINI FRITO 400GR 12 KG</option>
          </select> 
        </div></td>

        <td class="xl33"><div align="center">
            <input name="p1" type="text" class="fontePadrao1Negrito" onkeyup='amf2005_BecameCurrency(this,15)' 
 onblur='amf2005_BecameCurrency(this,15)'   id="p1" value=""  size="10" >
        </div></td>
		<td class="xl41"><div align="center">
            <input  name="qtd1" type="text" onKeyUp="java script:calcular(1);" class="fontePadrao1Negrito" id="qtd1" size="5" >
        </div></td>
        <td align="right"><div align="center">
            <input name="t1" type="text" class="tabelaPadrao1" id="t1" readonly="true"  size="10">

        </div></td>
      </tr>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...