Javascript 计算用户输入的数字之间的差值

Javascript 计算用户输入的数字之间的差值,javascript,html,Javascript,Html,这应该是一个不需要动脑筋的问题,但我没有Javascript方面的经验,我不明白为什么这不起作用 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Undantag</title> <p> STD: </p> <input type="number" name="STD"> &

这应该是一个不需要动脑筋的问题,但我没有Javascript方面的经验,我不明白为什么这不起作用

<!doctype html>

<html lang="en">
<head>
  <meta charset="utf-8">

  <title>Undantag</title>
  <p> STD: </p>
  <input type="number" name="STD">
  <p> STA: </p>
  <input type="number" name="STA">
  <p> ATD: </p>
  <input type="number" name="ATD">
  <p> ATA: </p>
  <input type="number" name="ATA">


<button onclick="useUndantag()">Click me</button>


</head>

<body>
  <script>
    function useUndantag()  {
        var a = document.getElementsByName("STD"); 
        var b = document.getElementsByName("ATD");
        var c = document.getElementsByName("STA");
        var d = document.getElementsByName("ATA");


        if (a-b >1) {
        alert("No undantag");
        }
            else if (d-c >2) {
                alert ("No undantag");

                else () {
                    alert ("NO EU FOR YOU!")

                }

            }
    }

  </script>
</body>
</html>

翁丹塔格
标准:

STA:

ATD:

ATA:

点击我 函数useUndantag(){ var a=document.getElementsByName(“标准”); var b=document.getElementsByName(“ATD”); var c=document.getElementsByName(“STA”); var d=document.getElementsByName(“ATA”); 如果(a-b>1){ 警报(“无信号”); } 否则,如果(d-c>2){ 警报(“无信号”); else(){ 警告(“你没有欧盟!”) } } }

问题是我一点也不警觉,我似乎不知道为什么。如果有人有任何建议,我将非常高兴能得到任何帮助。

首先,
getElementsByName
返回HTML元素的集合。使用
[0]
访问第一个元素。接下来,必须使用
parseFloat
parseInt
将输入解析为整数/浮点。此外,除非您有脚本、链接、meta、title和其他标记,否则HTML代码会出现在
body
标记中。最后,您有一个语法错误:

else () { }
不应该有括号。在
else后面还缺少一个大括号。如果
,请删除else后面的右大括号。下面是一个固定片段:

函数useUndantag(){
var a=document.getElementsByName(“STD”)[0]。值;
var b=document.getElementsByName(“ATD”)[0]。值;
var c=document.getElementsByName(“STA”)[0]。值;
var d=document.getElementsByName(“ATA”)[0]。值;
如果(parseInt(a)-parseInt(b)>1{//注意parseInt的用法,您可以使用parseFloat来处理小数
警报(“无信号”);
}else if(parseInt(d)-parseInt(c)>2){
警报(“无信号”);
}else{//请注意,没有括号和其他大括号
警告(“你没有欧盟!”)
}
}
STD:

STA:

ATD:

ATA:


单击我
您的语法不正确

此外,如果要比较输入的值,则需要获得输入的
属性

另外,
document.getElementsByName
返回一个元素数组,因此需要选择第一个元素

以下是一个工作示例:


翁丹塔格
标准:

STA:

ATD:

ATA:

点击我 函数useUndantag(){ var a=document.getElementsByName(“STD”)[0]。值; var b=document.getElementsByName(“ATD”)[0]。值; var c=document.getElementsByName(“STA”)[0]。值; var d=document.getElementsByName(“ATA”)[0]。值; 如果(a-b>1){ 警报(“无信号”); }否则如果(d-c>2){ 警报(“无信号”); }否则{ 警告(“你没有欧盟!”) } }
您有足够的错误

功能

document.getElemenstByName
返回一个数组

    var a = document.getElementsByName("STD")[0].value; 
    var b = document.getElementsByName("ATD")[0].value;
    var c = document.getElementsByName("STA")[0].value;
    var d = document.getElementsByName("ATA")[0].value;
你的句子被误判了

此处代码:

1)最好使用
getElementById()
,速度更快,而且只选择一个元素(“id”在HTML文档中必须是唯一的)

2) 确保使用正确的HTML结构

<!doctype html>
<html>
    <head>
        <meta>
        <title></title>
    </head>
    <body>
        <input>
        <script>
        </script>
    </body>
</html>

我认为你有语法错误。它应该是
else{…}
而不是
else(){…}
没有解释的代码对任何人都没有帮助!请添加解释以更好地回答问题@你说得对,下次我会做得更好。我只是想发布一个有效的解决方案。我希望他会研究所有工作示例的代码,并从中学习。你的代码不起作用。HTML是不正确的,因为这些标签不应该出现在头部,JS是不正确的,只是一些批评。你真的帮助了我,我以前从未使用过Javascript,我会完成他的工作,然后尝试进一步学习。谢谢你的帮助@OscarAndersson,如果我帮忙的话,请考虑接受答案:
<!doctype html>    
<html lang="en">
<head>
  <meta charset="utf-8">    
  <title>Undantag</title>
</head>

<body>
  <p> STD: </p><input type="number" id="STD">
  <p> STA: </p><input type="number" id="STA">
  <p> ATD: </p><input type="number" id="ATD">
  <p> ATA: </p><input type="number" id="ATA">

<button onclick="useUndantag();">Click me</button>
  <script>
    function useUndantag()  {
        var a = document.getElementById("STD"); 
        var b = document.getElementById("ATD");
        var c = document.getElementById("STA");
        var d = document.getElementById("ATA");

        if (parseInt(a.value)-parseInt(b.value)>1) {
            alert("No undantag");
        }
        else if (parseInt(d.value)-parseInt(c.value) >2) 
        {
            alert ("No undantag");
        }
        else 
        {
            alert ("NO EU FOR YOU!");
        }
    }
  </script>
</body>
</html>