Javascript isNaN无效

时间:2016-10-27 15:50:11

标签: javascript

由于某种原因,它没有验证isNan代码,你们可以帮帮我吗?但是它验证了非空条件,但是当我插入字母时没有出现任何弹出

<html>
<head>
<script type='text/javascript'>

function resultado()
{

  if(massa.peso.value=="") || (isNaN(massa.peso.value)==false))
   alert("Preencha a peso");

   if(massa.altura.value=="") || (isNaN(massa.altura.value)==false)) 
    alert("Preencha a altura");



}

</script>
</head>

HTML:

<body>
<h1>INDICE MASSA CORPORAL</h1>
<form name="massa">
  Peso: <input type="text" name="peso">
  Altura: <input type="text" name="altura">
  <input type="submit" value="Confirmar" onclick="resultado()">
  <input type="reset" value="Limpar">
</form>
</body>

</html>

3 个答案:

答案 0 :(得分:0)

我明白了,你正在检查isNaN是否为假而非真实 如果参数不是数字,则isNaN将返回true,如果是数字,则返回false。

我认为它完全正常(当然有括号)。请找到plunker链接https://plnkr.co/edit/rbu7sFhJoKJuFgFqDoFY

function resultado()
{
 if((massa.peso.value=="") || (isNaN(massa.peso.value)==true))
  console.log("Preencha a peso");

 if((massa.altura.value=="") || (isNaN(massa.altura.value)==true)) 
  console.log("Preencha a altura");
}

<body>
  <h1>INDICE MASSA CORPORAL</h1>
  <form name="massa">
    Peso: <input type="text" name="peso" />
    Altura: <input type="text" name="altura" />
    <input type="submit" value="Confirm" onclick="resultado()" />
    <input type="reset" value="Limpar" />
  </form>
</body>

答案 1 :(得分:0)

为了回应你弄乱你的情况的另一个答案,它应该是

(massa.peso.value=="") || (isNaN(massa.peso.value)==true)

要添加,您还在使用提交事件,不确定您想要什么,但如果只是前端验证,您可能想要将按钮更改为常规按钮或更改onsubmit事件的默认操作

https://jsfiddle.net/hv1nr063/

答案 2 :(得分:0)

function resultado(){
   let peso = document.getElementsByName("peso")[0]
     , altura = document.getElementsByName("altura")[0];
  
   if( !peso.value ){
     alert("Preencha a peso");
     return;
   }
   
   if( !altura.value ){
     alert("Preencha a altura");
     return;
   }
}
<h1>INDICE MASSA CORPORAL</h1>
<form name="massa">
  Peso: <input type="text" name="peso" />
  Altura: <input type="text" name="altura" />
  <input type="submit" value="Confirmar" onclick="resultado()">
  <input type="reset" value="Limpar">
</form>