Javascript 计算用户输入的数字之间的差值
这应该是一个不需要动脑筋的问题,但我没有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"> &
<!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>