【发布时间】:2020-12-11 09:32:55
【问题描述】:
标题中提到了这个问题。代码如下:
错误信息:
未捕获的引用错误:未定义 obwod 在 HTMLInputElement.onclick 第 15 行
未捕获的 ReferenceError:未定义极点 在 HTMLInputElement.onclick 第 16 行
function obliczanie (pro,ok)
{
this.promien=pro;
this.y=ok
this.daneWyjscie-function(){
return this.promien+" "+this.y+";
}
}
function oblicz(input1){
return 1 * input1
}
function pole(){
var O2 = pole();
O2.promien=input1;
O2.y=oblicz( Math.PI * (promien * promien));
document.getElementById('wynik').innerHTML= "obwod jest rowny: "+ y.toFixed(2)
return y.toFixed(2);
}
function obwod(){
var x=Number(document.getElementById("dlugosc").value);
var z=Number(document.getElementById("szerokosc").value);
var y=oblicz(2*x)+(2*z);
document.getElementById('wynik').innerHTML= "obwod jest rowny: "+ y.toFixed(2);
return y.toFixed(2);
}
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>he</title>
</head>
<body>
<h1>Prostokąt</h1>
Wpisz a <input id="input1" type="text" value="1" /><br />
<br>
Wpisz b <input id="input2" type="text" value="1" /><br />
<br>
<input type="button" name="obwod" value="obwod" Onclick="obwod()">
<input type="button" name="pole" value="pole" Onclick="pole()">
<p id="wynik">Wynik: </p>
</body>
</html>
【问题讨论】:
-
与错误无关,但
var O2 = pole();作为pole函数中的第一行会导致无限循环。与错误相关的是,当您删除额外的引号时,提供的 sn-p 中没有类型错误,相反,由于上述无限循环,您将得到一个最大堆栈大小超出错误。 -
或者实际上仍然存在类型错误,文本输入的 id 与您在脚本中引用它们的 id 不同。不过,假设这只是在帖子中。
-
谢谢!我完全了解文本输入,并且已经修复了它们。我仍在为这两个错误而苦苦挣扎(按钮仍然不起作用)。
-
如果您不提供我们可以重现您的问题的示例代码,我们无法帮助您。我们可以给出的唯一建议是您必须检查代码是否存在语法错误,如果存在单个语法错误,则停止该脚本的执行,并且语法错误之后的任何内容都没有得到定义。还要检查引用的名称是否匹配。如果脚本来自一个单独的 JS 文件,您必须在单击按钮时检查它是否真的被加载。
-
我要做的第一件事是将
console.log(x, y, z)放在document.getElementById之前,然后看看它是否会在浏览器控制台中打印出来。从那里继续,您将能够弄清楚。 Powodzenia!
标签: javascript function button