Foros del Web » Programando para Internet » Javascript »

Problema con el 0 en suma de campos

Estas en el tema de Problema con el 0 en suma de campos en el foro de Javascript en Foros del Web. Buenas tardes espero y puedan ayudarme a solucionar este problema Tengo un codigo que suma los textbox muy bien pero cuando le pongo en un ...
  #1 (permalink)  
Antiguo 24/06/2010, 11:18
 
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Problema con el 0 en suma de campos

Buenas tardes espero y puedan ayudarme a solucionar este problema

Tengo un codigo que suma los textbox muy bien pero cuando le pongo en un textbox el valor 0 (cero) no me lo toma en cuenta me dice que faltan valores estoy usando parseFloat les dejo mi codigo y espero que si puedan ayudarme

gracias de antemano y saludos.

Código HTML:
<script>

  function validarNumA8(){
  float = validarfloat(document.miForm.valor1.value);
    if (float==""){
      //document.miForm.num1.value=""
      return ""
    }else{
      res1=true
      return float
    }
  }

  function validarNumB8(){
  float = validarfloat(document.miForm.valor2.value);
    if (float==""){
      //document.miForm.num2.value = ""      
      return ""
    }else{
      res2=true
      return float
    }
  }
  
   function validarNumC8(){
  float = validarfloat(document.miForm.valor3.value);
    if (float==""){
      //document.miForm.num2.value = ""      
      return ""
    }else{
      res3=true
      return float
    }
  }
	
    function validarNumD8(){
  float = validarfloat(document.miForm.valor4.value);
    if (float==""){
      //document.miForm.num1.value=""
      return ""
    }else{
      res4=true
      return float
    }
  }

  function validarNumE8(){
  float = validarfloat(document.miForm.valor5.value);
    if (float==""){
      //document.miForm.num2.value = ""      
      return ""
    }else{
      res5=true
      return float
    }
  }
  
   function validarNumF8(){
  float = validarfloat(document.miForm.valor6.value);
    if (float==""){
      //document.miForm.num2.value = ""      
      return ""
    }else{
      res6=true
      return float
    }
  }
  
 
  function validarfloat(valor){
    valor = parseFloat(valor)
    if (isNaN(valor)) {
      return ""
    }else{
     return valor
    }

  }

  function sumarc8(){
      if (validarNumA8()=="" || validarNumB8()=="" || validarNumC8()=="" || validarNumD8()=="" || validarNumE8()=="" || validarNumF8()==""){
        alert ("Faltan Datos")
        document.miForm.totalc8.value = ""
      }else{
        sol = validarNumA8()+validarNumB8()+validarNumC8()+validarNumD8()+validarNumE8()+validarNumF8()
        document.miForm.totalc8.value = sol
      }

    }
	
	</script>
    
<style type="text/css">
<!--
.tb2 {	background-color : #FEFE9A;
	border: 1px solid #666666;
	width: 148px;
}
.Estilo5 {font-family: Calibri; color: #666666; }
.total {	background-color : #FFFFFF;
	border: 1px solid #666666;
	width: 148px;
}
-->
</style>
<form name="miForm" method="post" action="">
  <table width="200" border="0">
    <tr>
      <td width="40">1</td>
      <td width="150"><input name="valor1" type="text" class="tb2" id="valor1" onblur="validarNumA8()" /></td>
    </tr>
    <tr>
      <td>2</td>
      <td><input name="valor2" type="text" class="tb2" id="valor2" onblur="validarNumB8()" /></td>
    </tr>
    <tr>
      <td>3</td>
      <td><input name="valor3" type="text" class="tb2" id="valor3" onblur="validarNumC8()" /></td>
    </tr>
    <tr>
      <td>4</td>
      <td><input name="valor4" type="text" class="tb2" id="valor4" onblur="validarNumD8()" /></td>
    </tr>
    <tr>
      <td>5</td>
      <td><input name="valor5" type="text" class="tb2" id="valor5" onblur="validarNumE8()" /></td>
    </tr>
    <tr>
      <td>6</td>
      <td><input name="valor6" type="text" class="tb2" id="valor6" onblur="validarNumF8()" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><span class="Estilo5">
        <input name="totalc8" class="total" onfocus = "sumarc8()" id="totalc8" />
      </span></td>
    </tr>
  </table>
</form> 
  #2 (permalink)  
Antiguo 24/06/2010, 13:46
 
Fecha de Ingreso: septiembre-2003
Mensajes: 65
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Problema con el 0 en suma de campos

Ahi el parseFloat no te consigue pasar el string 0 a un float y te da un false, y el isNaN lo coge. Si cambias esto yo creo que deberia funcionar

function validarfloat(valor){
if(valor=='0') return 0;
else valor = parseFloat(valor)
if (isNaN(valor)) {
return ""
}else{
return valor
}
  #3 (permalink)  
Antiguo 24/06/2010, 17:59
 
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con el 0 en suma de campos

Buenas tardes gurthgor

no me funciono el codigo si esta bien la sintaxis?

saludos
  #4 (permalink)  
Antiguo 25/06/2010, 06:00
 
Fecha de Ingreso: septiembre-2003
Mensajes: 65
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Problema con el 0 en suma de campos

No puse el } fin de la funcion, ¿puede ser por eso?
  #5 (permalink)  
Antiguo 25/06/2010, 22:36
 
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con el 0 en suma de campos

gurthgor gracias por la respuesta

Aqui encontre otro codigo que hace exactamente lo mismo pero mas sencillo

se los dejo por alguien lo necesita

saludos.

y gracias por sus respuestas :)

<html>
<head>
<title></title>
<script>
function sumar() {
var n1 = parseFloat(document.MyForm.numero1.value);
var n2 = parseFloat(document.MyForm.numero2.value);
var n3 = parseFloat(document.MyForm.numero3.value);
var n4 = parseFloat(document.MyForm.numero4.value);
document.MyForm.resultado.value=n1+n2+n3+n4;
}
</script>
</head>

<body>

<form name="MyForm">
<table width="200" border="0">
<tr>
<td width="70">Valor1</td>
<td width="120"><input type="text" name="numero1" size="20"></td>
</tr>
<tr>
<td>Valor2</td>
<td><input type="text" name="numero2" size="20"></td>
</tr>
<tr>
<td>Valor3</td>
<td><input type="text" name="numero3" size="20"></td>
</tr>
<tr>
<td>Valor4</td>
<td><input type="text" name="numero4" size="20"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Resultado</td>
<td><input type="text" name="resultado" onFocus="sumar()"></td>
</tr>
</table>
</form>

</body>

</html>

Etiquetas: sumas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:54.