Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 警报(";)不是&x27;在HTML中调用时是否正常运行?使用isNan也验证float_Javascript_Alert - Fatal编程技术网

Javascript 警报(";)不是&x27;在HTML中调用时是否正常运行?使用isNan也验证float

Javascript 警报(";)不是&x27;在HTML中调用时是否正常运行?使用isNan也验证float,javascript,alert,Javascript,Alert,如果我含糊其辞,请原谅,这是我的第一篇帖子,我是一个JavaScript新手,几周前就开始了 我正在为我的学校网站工作,出于某种原因,警报窗口即使在被调用时也不会弹出。我可能错过了明显的机会,但现在是凌晨4点,我已经做了四个小时的家庭作业,五个小时前我刚上了8个小时的班,我很想睡觉。 无论如何,我会发布所有与代码和错误相关的信息,并在醒来时进行检查(可能6-7小时后)。 我也在使用记事本++和Chrome。 另外,要澄清的是,除了错误窗口没有弹出外,所有的工作都很好。我相信我用的isNan可以检

如果我含糊其辞,请原谅,这是我的第一篇帖子,我是一个JavaScript新手,几周前就开始了

我正在为我的学校网站工作,出于某种原因,警报窗口即使在被调用时也不会弹出。我可能错过了明显的机会,但现在是凌晨4点,我已经做了四个小时的家庭作业,五个小时前我刚上了8个小时的班,我很想睡觉。 无论如何,我会发布所有与代码和错误相关的信息,并在醒来时进行检查(可能6-7小时后)。 我也在使用记事本++和Chrome。 另外,要澄清的是,除了错误窗口没有弹出外,所有的工作都很好。我相信我用的isNan可以检查数字,但我对JavaScript还是新手,所以可能不是这是我最担心的两个问题,isNan和警报窗口不会弹出。 当我单击按钮将两个数字相加时(这是一个非常简单的程序,用户输入的数字加上9.99装运变量)它会在第二个文本框中输出数字。但如果我输入“asdas”或字母,第二个文本框将返回“Nan”,而不是弹出警报窗口。

编辑这个,我可能会把网站扔了(这是我的学生网站,我希望不必担心被黑客攻击)。 它也有所有更新的数据。

我不想发布我庞大的index.html,因为有很多标记还没有移动到.js文件中,所以看起来很糟糕。如果这是不够的信息,我会尝试更新它

这是我的index.html的一部分

    <script src = "ft.js"></script>
<form id="inputform">
<input name="firstnum" type ="text" size="6"> $ <input name="btn1" type="text" size="6">
<input name="btn2" type="button" value = "Calculate Cost" onclick="addNum(firstnum.value); verifyNum()">
</form>

首先,需要更改以下代码onclick=“addNum(firstnum.value)”

将代码更改为:

function addNum(n1) 
{
    **verifyNum(n1);**
   //Call the verify function inside addNum, before parseFloat
    var num1 = parseFloat(n1);
    var shipping = 9.99;

    finalNum = num1 + shipping;

    inputform.btn1.value = finalNum.toFixed(2); //rounds the decimal place to 2!

}

function verifyNum(n1) {

    if (isNaN(n1))  // use the function arg here - isNaN spelling corrected
    {
        alert("Please make sure there's no alphabetical letters.");
        return false;
    }
}
将DOM元素的函数调用更改为:

 onclick="addNum(this.firstnum);"
 //There should be one entry point to an event.

一种可行的方法是向输入元素添加一个ID值,如下所示:

函数addNum(n1){
如果(!verifyNum(n1)){
返回false;
}
var num1=浮点(n1);
var shipping=9.99;
finalNum=num1+装运;
document.getElementById(“outputDiv”).innerHTML=finalNum;
}
函数verifyNum(n1){
if(isNaN(n1)){
提醒(“请确保没有字母顺序。”);
返回false;
}
返回true;
}


输出将在这里

我将isNan更改为isNan(n1),KenH是对的。我的问题解决了:)感谢大家的评论。

你能把调用
verifyNum
的代码包含进来吗?在你的验证函数中,为什么你要使用
num1
而不是
n1
?@nabn
这是调用行,我在它是“addnum(firstnum.value);verifyNum()之前编辑过它我还尝试过使用verifyNum(firstnum.value)。@KenH。我不确定,我看了一个教程,它使用了firstnum(HTML中输入名称的名称)而不是n1,并且工作正常。我刚才试过使用n1,结果它破坏了代码,所以我也不知道。@LukeSitler-现在,您传递给
addNum
函数的内容没有定义。我不知道这个.firstnum是否能给你带来一些有用的东西?但它当前正在传递一个未定义的值。
this.firstnum
将未定义,因此将
num1
num1.value
我将代码更改为您所拥有的值,我在addNum中调用了verifyNum(n1)并编辑:onclick=“addNum(this.firstnum);”但我仍然没有弹出警报窗口。我还尝试使用confirm(“”);但这也不起作用。不确定此时该怎么办这有几个问题-首先,
isNaN
拼写错误。此外,您应该使用
isNaN(n1)
,以便直接访问该值(只要您将该值直接传递给函数)。此外,您似乎应该在尝试使用该数字之前调用该函数?@KenH。你能回答这个问题吗?它真的起作用了,我简直不敢相信。这一个“n”没有被资本化,造成了巨大的差异。窗户也弹出了,谢谢你,肯恩。当我输入时,isNaN也以紫色突出显示。我想工作13个多小时对我来说是一种负担。再次感谢!我在下面的答案中更新了我的信息和代码片段-看看它是否适合您,@LukeSitlerI更新了我的答案以反映此更改,并且我认为您应该在尝试使用验证号码函数之前调用它?查看下面我的代码片段,看看它是否对您有帮助。
 onclick="addNum(this.firstnum);"
 //There should be one entry point to an event.