【问题标题】:Button doesn't work, apparently it's not defined按钮不起作用,显然它没有定义
【发布时间】: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


【解决方案1】:

您的代码中有语法错误。

return this.promien+" "+this.y+";

在 return 语句的末尾有一个空的未闭合字符串。有什么东西属于那里还是应该只是这样:

return this.promien+" "+this.y;

【讨论】:

  • 修复了obwod is not defined 错误
  • 谢谢!但是还是有一点小问题。尽管包含您的修复程序,但该按钮似乎不起作用。不幸的是,同样类型的错误仍然存​​在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
  • 2014-06-08
  • 2015-07-05
  • 2017-07-09
  • 2017-04-26
相关资源
最近更新 更多