0

所以我在为我的家庭作业用 HTML 和 Java 脚本创建一个计算器时遇到了问题,我不知道它有什么问题。由于某种原因,在我添加 sqrt 功能按钮后不再工作,我无法真正找到答案,请帮助...

JavaScript:

    var liczba1,liczba2,znak,flaga_przecinek

    function liczba(cyfra)
    {
      var a = document.getElementById("licz").innerHTML   
      if(a == "0")document.getElementById("licz").innerHTML = cyfra
      else document.getElementById("licz").innerHTML += cyfra
    }

    function dzialanie(operacja)
    {
      liczba1 = document.getElementById("licz").innerHTML
      znak = operacja
      document.getElementById("licz").innerHTML = 0
      flaga_przecinek = false
    }  

    function wynik()
    {
      liczba2 = document.getElementById("licz").innerHTML

      var wynik1

      switch wynik()
      {
        case '+': wynik1 = parseFloat(liczba1) + parseFloat(liczba2)
          break
        case '-': wynik1 = parseFloat(liczba1) - parseFloat(liczba2)
          break
        case '*': wynik1 = parseFloat(liczba1) * parseFloat(liczba2)
          break
        case '/': if (liczba2 == '0')
        wynik1 = 'Nie można dzielić przez 0'
        else  
        case '/': wynik1 = parseFloat(liczba1) / parseFloat(liczba2)
          break
        case '^': wynik1 = 1
                  for (vard i = 1;i<=liczba2;i++)wynik1 = wynik1*liczba1
          break         
      }

      if(!isNaN(wynik1)||wynik1 == 'Nie można dzielić przez 0')
      document.getElementById("licz").innerHTML = wynik1
      else
      document.getElementById("licz").innerHTML = 'Nie podałeś liczby'
    }

    function kasuj()
    {
      liczba1 = liczba2 = 0
      znak = ''
      document.getElementById("licz").innerHTML = 0
      flaga_przecinek = false
    }

    function przecinek()
    {
      if (flaga_przecinek == false)
      {
        document.getElementById("licz").innerHTML += '.'
        flaga_przecinek = true
      }
    }

    function bekspejs()
    {
      var x = document.getElementById("licz").innerHTML
      if(x.charAt(xlenght-1)=='.'flaga_przecinek = false
      x = x.slice(0,x.lenght-1)
      document.getElementById("licz").innerHTML = x
    }

    function operacja1(operacja)
    {
      var x = document.getElementById("licz").innerHTML

      switch(operacja)
      {
        case 'sqrt':x = Math.sqrt(x)
         break
        case '+/-':x = -1*x
         break 
      }
      document.getElementById("licz").innerHTML = x
    }

HTML:

  <body onload=kasuj()>

    <form name=kalkulator>
      <p id=licz></p>
      <br><br>

      <input type="button" value=C onclick=kasuj()>
      <input type="button" value="<-" onclick=bekspejs()>
      <br><br>
      <input type="button" value=1 onclick=liczba(1)>
      <input type="button" value=2 onclick=liczba(2)>
      <input type="button" value=3 onclick=liczba(3)>
      <br>
      <input type="button" value=4 onclick=liczba(4)>
      <input type="button" value=5 onclick=liczba(5)>
      <input type="button" value=6 onclick=liczba(6)>
      <br>
      <input type="button" value=7 onclick=liczba(7)>
      <input type="button" value=8 onclick=liczba(8)>
      <input type="button" value=9 onclick=liczba(9)>
      <br>
      <input type="button" value=0 onclick=liczba(0)>
      <input type="button" value=, onclick=przecinek()>

      <br><br>

      <input type="button" value=+ onclick=dzialanie('+')>
      <input type="button" value=- onclick=dzialanie('-')>
      <input type="button" value=* onclick=dzialanie('*')>
      <input type="button" value=/ onclick=dzialanie('/')>
      <input type="button" value=^ onclick=dzialanie('^')>
      <br>
      <input type="button" value=sqrt onclick=operacja1('sqrt')>
      <input type="button" value=+/- onclick=operacja1('+/-')>

      <br>

      <input type="button" value== onclick=wynik()>
    </form>  
  </body>
4

1 回答 1

0

尝试将所有 onclick 事件和 value 属性包装在 double qoutes onclick=" przecinek() " value="+"

<input type="button" value="8" onclick="przecinek(8)">
<input type="button" value="9" onclick="przecinek(9)">
于 2013-05-07T19:25:51.833 回答