2013-05-07 60 views
0

所以我有一個問題,在我的作業中創建HTML和Java腳本的計算器,我不知道它有什麼問題。出於某種原因後,我加入開方功能按鈕不再工作,我不能真的找不到答案,請幫助...HTML計算器bug

的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> 
+0

歡迎來到Stack Overflow。感謝您正確地格式化您的代碼;它很容易閱讀。請告訴我們更多關於'sqrt'按鈕無法工作的信息,並告訴我們您嘗試解決問題的方法。 – John 2013-05-07 19:22:43

+1

請提供方法名稱的翻譯。 – 2013-05-07 19:22:45

+0

你應該使用分號。你應該在你的HTML屬性周圍使用引號。 – epascarello 2013-05-07 19:52:51

回答

0

嘗試使用雙重鏈接包裝所有onclick事件和值屬性onclick =「」przecinek()value =」+「

<input type="button" value="8" onclick="przecinek(8)"> 
<input type="button" value="9" onclick="przecinek(9)"> 
+0

用雙引號包裝並沒有幫助... – user2359690 2013-05-07 19:42:55

+0

那麼你應該使用引號。 – epascarello 2013-05-07 19:52:11

+0

發佈你做了什麼,讓我們看看。 – 2013-05-07 19:56:47