2013-09-23 89 views
0

我想要的東西,如:HTML javascript調用函數的負荷

1. 1296 
2. 4624 

Square root both numbers and add the result! 
Answer: ________ 
[Check button] 

,並打開somewhere.html如果答案是正確的

我做了這個腳本:

<html> 
<head> 
    <script language="javascript"> 
     window.onload=calc; 

     function calc() { 
      var num1, num2, sqNum1, sqNum2, randomNum, sum, ans; 
      num1=Math.floor(Math.random()*90)+10; 
      num2=Math.floor(Math.random()*90)+10; 
      sqNum1=num1*num1; 
      sqNum2=num2*num2; 
      sum=num1+num2; 
      document.write("1. " + sqNum1 + "<br />"); 
      document.write("2. " + sqNum2 + "<br />"); 
      document.write("<br />"); 
     } 

     function checkAns(form) { 
      if (form.ans.value==sum) { 
       location="somewhere.html"; 
      } else { 
       alert ("Wrong answer!"); 
      } 
     } 
    </script> 
</head> 

<body> 
    Square root both numbers and add the result! <br /> 
    <form name='question'> 
     Answer: <input name='ans' type='password'> <br /> 
     <input type='button' value='Check' onClick='checkAns(this.form)'> 
    </form> 
</body> 
</html> 

不管我試過,它從不顯示這部分:

Square root both numbers and add the result! 
Answer: ________ 
[Check button] 

這個腳本有什麼問題?

+0

你要碰到的另一個問題是你'在'calc'函數內聲明變量'sum'。在函數內用'var'聲明一個變量時,它的作用域被限制在該函數內部。 [閱讀此處](http://stackoverflow.com/questions/500431/javascript-variable-scope)瞭解更多關於JavaScript的範圍。 –

回答

-1

你需要的東西是這樣的:

<html> 
<head> 
    <script language="javascript"> 
     function calc() { 
      var num1, num2, sqNum1, sqNum2, randomNum, sum, ans; 
      num1=Math.floor(Math.random()*90)+10; 
      num2=Math.floor(Math.random()*90)+10; 
      sqNum1=num1*num1; 
      sqNum2=num2*num2; 
      sum=num1+num2; 
      document.getElementById("sum").value = sum; 

      var question = document.getElementById("question"); 
      var numbers = document.getElementById("numbers"); 
      var br = document.createElement('br'); 
      var txt = document.createTextNode("1. " + sqNum1); 
      numbers.appendChild(txt); 
      numbers.appendChild(br); 
      var txt = document.createTextNode("2. " + sqNum2); 
      numbers.appendChild(txt); 
      txt.appendChild(question); 
     } 

     function checkAns(form) { 

      if (document.getElementById("ans").value == document.getElementById("sum").value) { 
       var newWin = open('somewhere.html','windowName','height=300,width=300'); 
      } else { 
       alert ("Wrong answer!"); 
      } 
     } 
    </script> 
</head> 

<body onload="calc();"> 
    <form name='question'> 
     <div id="numbers"> 
     </div> 
     <br/> 
     Square root both numbers and add the result! <br /> 
     <div id="question"> 
      Answer: <input id='ans' name='ans' type='password'> <br /> 
      <input type='button' value='Check' onClick='checkAns(this.form)'> 
     </div> 
     <input id='sum' type='hidden' value=''/> 
    </form> 
</body> 
</html> 

這不是最好的答案,這是你可以用它來遵循開發的一種方式

+0

輸出正確,但功能仍不能正常工作,按下按鈕後未檢查答案。無論如何,感謝腳本,也許可以幫助我理解昆汀的解釋 – wthe22

+0

對不起,我認爲你只需要加載數字,我沒有看到checkAns函數。我會檢查那部分 –

+0

@ wthe22我編輯我的答案... –

5

當調用load函數的時候,文件它在關閉了狀態。

您不能將write變爲處於關閉狀態的文檔,因此撥打write會爲您撥打open

調用open將清除現有文檔。

將新內容寫入新文檔。

使用DOM manipulationcreateElement,appendChild和朋友)編輯現有文檔。