Jump to content
Fórum Script Brasil
  • 0

[LE AJUDA] Function não está checando valor do checkbox (Parsefloat)


Julix

Question

Olá galera é meu primero tópico, já usei o botão buscar, para evitar flood, enfim...

Minha dúvida é

<script language="javascript">

function Calcula(){

var Parametro1=document.FORM1.Campo1.value;

var Parametro2=document.FORM2.Campo2.value;

var Parametro3=document.FORM3.Campo3.value;

var Parametro4=document.FORM4.Campo4.value;

var Soma=( parseFloat(Parametro1) + parseFloat(Parametro2) + parseFloat(Parametro3) + parseFloat(Parametro4));

document.FORM5.VALORTOTAL.value=Soma;

}

</script>

Certo... ele retorna o valor para um Campo de Texto (VALORTOTAL) (tempo real), até ai tudo bem, só que vocês estão vendo o Parametro4, na variavel soma (parsefloat)? ele é uma Checkbox.

eu queria que ele lesse primeiro se ela está checada antes de pegar o valor dela, por que quando eu clico em qualquer uma Lista e seleciono um valor, o valor desse checkbox já vai direto sem passar por essa validação primeiro.

e o correto é usar para essa checkbox onChange="Calcula()" ?

MUITO OBRIGADO AMIGOS, AGUARDO RESPOSTAS.

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Bom dia.

Espero que te ajude.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>

<script>
var d = document;

function calcula()
{
    // Inicio zerando os valores
    d.getElementById( 'total' ).innerHTML = 'R$ 0.00';

    // Pegandos os campos
    var oChecks = d.getElementsByTagName( 'input' );
    var iChecks = oChecks.length;
    var fTotal  = 0;

    // Lendo os dados marcados
    for( var i = 0; i < iChecks; i++ )
    {
        if( oChecks[ i ].type == 'checkbox' && oChecks[ i ].checked )
        {
            // Separando pelo id passado
            var separaInfo  = oChecks[ i ].id.split( '_' );
            
            // pegando o valor de cada linha
            var fValorLinha = d.getElementById( 'val' + separaInfo[ 1 ] ).value;

            // tratando para ver se foram informados valores
            fValorLinha = parseFloat( fValorLinha );

            if( ! isNaN( fValorLinha ) )
            {
                fTotal += fValorLinha;
            }
            else
            {
                d.getElementById( 'val' + separaInfo[ 1 ] ).value = 0;
            }
        }
    }

    d.getElementById( 'total' ).innerHTML = 'R$ ' + fTotal.toFixed( 2 );
}
</script>

</head>

<body>
<table width="100%"  border="1">
  <tr>
    <td width="4%" align="center" valign="middle"><div align="center">
      <input name="chk_1" type="checkbox" id="chk_1" value="checkbox">
    </div></td>
    <td width="96%"><input name="val1" type="text" id="val1"></td>
  </tr>
  <tr>
    <td align="center" valign="middle"><div align="center">
      <input name="chk_2" type="checkbox" id="chk_2" value="checkbox">
    </div></td>
    <td><input name="val2" type="text" id="val2"></td>
  </tr>
  <tr>
    <td align="center" valign="middle"><div align="center">
      <input name="chk_3" type="checkbox" id="chk_3" value="checkbox">
    </div></td>
    <td><input name="val3" type="text" id="val3"></td>
  </tr>
  <tr>
    <td align="center" valign="middle"><div align="center">
      <input name="chk_4" type="checkbox" id="chk_4" value="checkbox">
    </div></td>
    <td><input name="val4" type="text" id="val4"></td>
  </tr>
  <tr>
    <td align="center" valign="middle"><div align="center">
    </div></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td align="center" valign="middle"><div align="center">Total</div></td>
    <td>
        <span id="total"></span>
    </td>
  </tr>
  <tr>
    <td colspan="2"><input type="button" value="Calcular" onclick="calcula()"/></td>
  </tr>
  
</table>
</body>
</html>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...