首页 > 解决方案 > Uncaught ReferenceError: function is not defined (noob here需要指导)

问题描述

我可以让我的页面做我想做的事,我不知道我错过了什么,它应该在某些 div 中打印一些计算结果,但是当我运行它时我不断收到未声明的函数错误,这里什么也没发生是我的代码:

<!DOCTYPE html>
  <html lang="es">
    <head>
      <meta charset="UTF-8">
      <meta favicon="icono.png">
      <meta content="width=device-width, initial-scale=1">
      <meta description="calculador de perdida auditiva">
      <meta keywords="calculador de perdida auditiva, nombre del 
      laboratorio, audiometria, etc">
      <title>Calculador de perdida auditiva</title>
    </head>
    <body>
      <form name="form1" id="form1" action=javascript:izquierdo() 
      method=post>
        <h2>Oido izquierdo</h2>
        <label for="freq500oi"> 500hz</label>
        <select name="frequencia 500" id="freq500oi">
          <option value='-10'>-10</option>
          <option value='-5'>-5</option>
          <option value='0' selected>0</option>
          <option value='5'>5</option>
          <option value='10'>10</option>
          <option value='15'>15</option>
          <option value='20'>20</option>
          <option value='25'>25</option>
          <option value='30'>30</option>
          <option value='35'>35</option>
          <option value='40'>40</option>
          <option value='45'>45</option>
          <option value='50'>50</option>
          <option value='55'>55</option>
          <option value='60'>60</option>
          <option value='65'>65</option>
          <option value='70'>70</option>
          <option value='75'>75</option>
          <option value='80'>80</option>
          <option value='85'>85</option>
          <option value='90'>90</option>
          <option value='95'>95</option>
          <option value='100'>100</option>
          <option value='105'>105</option>
          <option value='110'>110</option>
          <option value='115'>115</option>
          <option value='120'>120</option>
        </select>
        <br>
        <label for="freq1000oi" >1000hz</label>
        <select name="frequencia 1000" id="freq1000oi">
          <option value='-10'>-10</option>
          <option value='-5'>-5</option>
          <option value='0' selected>0</option>
          <option value='5'>5</option>
          <option value='10'>10</option>
          <option value='15'>15</option>
          <option value='20'>20</option>
          <option value='25'>25</option>
          <option value='30'>30</option>
          <option value='35'>35</option>
          <option value='40'>40</option>
          <option value='45'>45</option>
          <option value='50'>50</option>
          <option value='55'>55</option>
          <option value='60'>60</option>
          <option value='65'>65</option>
          <option value='70'>70</option>
          <option value='75'>75</option>
          <option value='80'>80</option>
          <option value='85'>85</option>
          <option value='90'>90</option>
          <option value='95'>95</option>
          <option value='100'>100</option>
          <option value='105'>105</option>
          <option value='110'>110</option>
          <option value='115'>115</option>
          <option value='120'>120</option>
        </select>
        <br>
        <label for="freq2000oi">2000hz</label>
        <select name="frequencia 2000" id="freq2000oi">
          <option value='-10'>-10</option>
          <option value='-5'>-5</option>
          <option value='0' selected>0</option>
          <option value='5'>5</option>
          <option value='10'>10</option>
          <option value='15'>15</option>
          <option value='20'>20</option>
          <option value='25'>25</option>
          <option value='30'>30</option>
          <option value='35'>35</option>
          <option value='40'>40</option>
          <option value='45'>45</option>
          <option value='50'>50</option>
          <option value='55'>55</option>
          <option value='60'>60</option>
          <option value='65'>65</option>
          <option value='70'>70</option>
          <option value='75'>75</option>
          <option value='80'>80</option>
          <option value='85'>85</option>
          <option value='90'>90</option>
          <option value='95'>95</option>
          <option value='100'>100</option>
          <option value='105'>105</option>
          <option value='110'>110</option>
          <option value='115'>115</option>
          <option value='120'>120</option>
        </select>
        <br>
        <label for="freq3000oi">3000hz</label>
        <select name="frequencia 3000" id="freq3000oi">
          <option value='-10'>-10</option>
          <option value='-5'>-5</option>
          <option value='0' selected>0</option>
          <option value='5'>5</option>
          <option value='10'>10</option>
          <option value='15'>15</option>
          <option value='20'>20</option>
          <option value='25'>25</option>
          <option value='30'>30</option>
          <option value='35'>35</option>
          <option value='40'>40</option>
          <option value='45'>45</option>
          <option value='50'>50</option>
          <option value='55'>55</option>
          <option value='60'>60</option>
          <option value='65'>65</option>
          <option value='70'>70</option>
          <option value='75'>75</option>
          <option value='80'>80</option>
          <option value='85'>85</option>
          <option value='90'>90</option>
          <option value='95'>95</option>
          <option value='100'>100</option>
          <option value='105'>105</option>
          <option value='110'>110</option>
          <option value='115'>115</option>
          <option value='120'>120</option>
        </select>
        <br>
      </form>
      <form name="form2" id="form2" action=javascript:derecho() method=post>
        <h2>Oido Derecho</h2>
        <label for="freq500od"> 500hz</label>
        <select name="frequencia 500" id="freq500od">
          <option value='-10'>-10</option>
          <option value='-5'>-5</option>
          <option value='0' selected>0</option>
          <option value='5'>5</option>
          <option value='10'>10</option>
          <option value='15'>15</option>
          <option value='20'>20</option>
          <option value='25'>25</option>
          <option value='30'>30</option>
          <option value='35'>35</option>
          <option value='40'>40</option>
          <option value='45'>45</option>
          <option value='50'>50</option>
          <option value='55'>55</option>
          <option value='60'>60</option>
          <option value='65'>65</option>
          <option value='70'>70</option>
          <option value='75'>75</option>
          <option value='80'>80</option>
          <option value='85'>85</option>
          <option value='90'>90</option>
          <option value='95'>95</option>
          <option value='100'>100</option>
          <option value='105'>105</option>
          <option value='110'>110</option>
          <option value='115'>115</option>
          <option value='120'>120</option>
        </select>
        <br>
        <label for="freq1000od">1000hz</label>
        <select name="frequencia 1000" id="freq1000od">
          <option value='-10'>-10</option>
          <option value='-5'>-5</option>
          <option value='0' selected>0</option>
          <option value='5'>5</option>
          <option value='10'>10</option>
          <option value='15'>15</option>
          <option value='20'>20</option>
          <option value='25'>25</option>
          <option value='30'>30</option>
          <option value='35'>35</option>
          <option value='40'>40</option>
          <option value='45'>45</option>
          <option value='50'>50</option>
          <option value='55'>55</option>
          <option value='60'>60</option>
          <option value='65'>65</option>
          <option value='70'>70</option>
          <option value='75'>75</option>
          <option value='80'>80</option>
          <option value='85'>85</option>
          <option value='90'>90</option>
          <option value='95'>95</option>
          <option value='100'>100</option>
          <option value='105'>105</option>
          <option value='110'>110</option>
          <option value='115'>115</option>
          <option value='120'>120</option>
        </select>
        <br>
        <label for="freq2000od">2000hz</label>
        <select name="frequencia 2000" id="freq2000od">
          <option value='-10'>-10</option>
          <option value='-5'>-5</option>
          <option value='0' selected>0</option>
          <option value='5'>5</option>
          <option value='10'>10</option>
          <option value='15'>15</option>
          <option value='20'>20</option>
          <option value='25'>25</option>
          <option value='30'>30</option>
          <option value='35'>35</option>
          <option value='40'>40</option>
          <option value='45'>45</option>
          <option value='50'>50</option>
          <option value='55'>55</option>
          <option value='60'>60</option>
          <option value='65'>65</option>
          <option value='70'>70</option>
          <option value='75'>75</option>
          <option value='80'>80</option>
          <option value='85'>85</option>
          <option value='90'>90</option>
          <option value='95'>95</option>
          <option value='100'>100</option>
          <option value='105'>105</option>
          <option value='110'>110</option>
          <option value='115'>115</option>
          <option value='120'>120</option>
        </select>
        <br>
        <label for="freq3000od">3000hz</label>
        <select name="frequencia 3000" id="freq3000od">
          <option value='-10'>-10</option>
          <option value='-5'>-5</option>
          <option value='0' selected>0</option>
          <option value='5'>5</option>
          <option value='10'>10</option>
          <option value='15'>15</option>
          <option value='20'>20</option>
          <option value='25'>25</option>
          <option value='30'>30</option>
          <option value='35'>35</option>
          <option value='40'>40</option>
          <option value='45'>45</option>
          <option value='50'>50</option>
          <option value='55'>55</option>
          <option value='60'>60</option>
          <option value='65'>65</option>
          <option value='70'>70</option>
          <option value='75'>75</option>
          <option value='80'>80</option>
          <option value='85'>85</option>
          <option value='90'>90</option>
          <option value='95'>95</option>
          <option value='100'>100</option>
          <option value='105'>105</option>
          <option value='110'>110</option>
          <option value='115'>115</option>
          <option value='120'>120</option>
        </select>
      </form>
      <form id="form3" name="form3" action=javascript:calculo method=post>
        <input type="submit" id="calc" value="Calcular">
        <h2>Perdida oido izquierdo: </h2><div id="total1"></div><p>%</p>
        <h2>Perdida oido derecho: </h2><div id="total2"></div><p>%</p>
        <h2>Perdida biaural: </h2><div id="total3"></div><p>%</p>
      </form>
      <script type="text/javascript" src="/scripts/calculo.js"></script>
    </body>
  </html>

这是js:

    function calculo() {
      var temp1 = document.form1.getElementById('freq500oi');
      var temp2 = document.form1.getElementById('freq1000oi');
      var temp3 = document.form1.getElementById('freq2000oi');
      var temp4 = document.form1.getElementById('freq3000oi');
      var izq1 = temp1[temp1.selectedIndex].value;
      var izq2 = temp2[temp2.selectedIndex].value;
      var izq3 = temp3[temp3.selectedIndex].value;
      var izq4 = temp4[temp4.selectedIndex].value;
      var tot1 = (((izq1 + izq2 + izq3 + izq4) / 4) - 25) * 1.5;
      var temp5 = document.form2.getElementById('freq500od');
      var temp6 = document.form2.getElementById('freq1000od');
      var temp7 = document.form2.getElementById('freq2000od');
      var temp8 = document.form2.getElementById('freq3000od');
      var der1 = temp5[temp5.selectedIndex].value;
      var der2 = temp6[temp6.selectedIndex].value;
      var der3 = temp7[temp7.selectedIndex].value;
      var der4 = temp8[temp8.selectedIndex].value;
      var tot2 = (((der1 + der2 + der3 + der4) / 4) - 25) * 1.5;
      var mejor = Math.min(tot1, tot2);
      var peor = Math.max(tot1, tot2);
      var tot3 = ((mejor * 5) + peor) / 6;
      function izquierdo() {
        document.form3.getElementById('total1').innerHTML = tot1;
      }
      function derecho() {
        document.form3.getElementById('total2').innerHTML = tot2;
      }
      function biaural() {
        tot3 = tot3 * 100;
        tot3 = Math.floor(tot3);
        tot3 = tot3 / 100;
        document.form3.getElementById('total3').innerHTML = tot3;
      }
      document.form3.getElementById("calc").addEventListener("click", 
      izquierdo(), true);
      document.form3.getElementById("calc").addEventListener("click", 
      derecho(), true);
      document.form3.getElementById("calc").addEventListener("click", 
      biaural(), true);
    }

我非常感谢对我做错了什么的一些见解,我是 html 和 js 的新手(昨天开始学习)所以我可能会遗漏一些明显的东西 ps:对不起,如果我拼写错误或者我的英语生疏了

标签: javascripthtml

解决方案


推荐阅读