Javascript添加错误消息

Javascript添加错误消息,javascript,html,Javascript,Html,我是javascript新手,不知道下面的错误消息是什么意思: 你好! 南是什么意思 我的脚本如下: <script type="text/javascript"> function validateForm() { var x=document.forms["myForm"]["name"].value; if (x==null || x=="") { alert("What Is Your Name?"); return false; } } func

我是javascript新手,不知道下面的错误消息是什么意思:

你好!

南是什么意思

我的脚本如下:

    <script type="text/javascript">
function validateForm()
{
var x=document.forms["myForm"]["name"].value;
if (x==null || x=="")
  {
  alert("What Is Your Name?");
  return false;
  }
}


function addNos(){
    var a, b, res;
    a= parseFloat(document.myForm.salary.value);
    b= parseFloat(document.myForm.requiredamount.value);
    res = a+b;
    window.alert("Hello" + a + b );
}

</script>

    <form name="myForm" action="" onsubmit="return validateForm()" method="post">


<label>Your Name</label> <br /><br /><input name="name" type="text" />

<br /><br />
<label>Your Salary</label><br /><br />
<select name="salary">
  <option value="10000">10000</option>
  <option value="20000">20000</option>
  <option value="30000">30000</option>
</select>

<br /><br />
<label>Required Amount</label><br /><br />
<input name="requiredamount" type="radio" value="5000" /> 5000
<input name="requiredamount" type="radio" value="10000" /> 10000
<input name="requiredamount" type="radio" value="15000" /> 15000
<input name="requiredamount" type="radio" value="20000" /> 20000

<br /><br />

<input name="" type="submit" value="Get Quote" onclick="addNos()" />


</form>
我正在尝试将requiredamount与薪水一起添加,并获取要显示在对话框中的名称


有人知道anwseR吗?

NaN的意思不是数字。它可能发生在除以零或添加未定义的值时

维基:

好的,我没有时间测试您的代码,但是看起来您的JavaScript正在试图在用户输入值之前访问表单元素?这意味着它们没有定义

需要下载jQuery才能执行此操作:

您可以在$document.readyfunction{//您的代码{

如何检测NaN的原因

是否加载了html元素?有时html加载在javascript之后 值是否未定义? 你在除以零吗? JavaScript已经 您依赖于用户输入正确输入为数字。在解析之前,您应该使用正则表达式验证输入是否为数字


这意味着不是数字NaN。如果salary字段或requiredamount字段中有一些非数字值,则会发生这种情况。例如,如果您重复使用值100和Blah,则用于计算a的parseFloat将返回数字100,而b的parseFloat将返回NaN,因为Blah没有数字表示。Subs通常,当您尝试在警报框中添加100和NaN时,您会看到所看到的行为

您可以使用isNaN函数对这些值进行双重检查:

a = parseFloat(...);
if (isNaN(a))
{
    alert("Sorry, you must enter a real number");
    return;
}
希望能把事情弄清楚

编辑:

最有可能的情况是,您的输入中有一个$。parseFloat$100==NaN,而parseFloat100==100,因此您需要首先去掉代码中的任何前导美元符号。

尝试以下操作:

如果选择了单选按钮,我没有添加测试。如果没有选择单选按钮,结果将为NaN

从此处获取单选按钮:


向上投票我的答案,我会告诉你!哈哈,只是开玩笑,我会看一看,但实际上,向上投票是一个非常复杂的验证数字的解决方案,因为有很多不同的有效方法可以输入数字。最好只是解析它,并检查数字是否有限。
a = parseFloat(...);
if (isNaN(a))
{
    alert("Sorry, you must enter a real number");
    return;
}
function validateForm()
{
var x=document.forms["myForm"]["name"].value;
if (x==null || x=="")
  {
  alert("What Is Your Name?");
  return false;
  }
}

function getCheckedRadioId(name) {
    var elements = document.getElementsByName(name);

    for (var i=0, len=elements.length; i<len; ++i)
        if (elements[i].checked) return elements[i].value;
}
function addNos(){
    var a, b, res;
    a= parseFloat(document.myForm.salary[document.myForm.salary.selectedIndex].value);
    alert(a);
    b= parseFloat(getCheckedRadioId("requiredamount"));
    res = a+b;
    window.alert("Hello " + a + " " + b );
}