2015-04-03 19 views
0

我是JavaScript和HTML編程的新手,我無法修復此錯誤。 在JavaScript代碼中有一個函數Ge​​tvalues(),它在ID = sq1的第一個 文本框中運行正常,只要調用onchange事件。更確切地說,它僅適用於id = sq1的文本框,例如,如果我交換了id,它適用於該框。所以基本上我希望它能夠處理所有的onchange事件。當我正在學習基礎知識時,我會很感激任何幫助。對所有事件都不要求JavaScript函數

<script type="text/javascript"> 
 

 
\t \t var b1,b2,b3 = 5; 
 
\t \t function Result(FLAG) 
 
\t \t { 
 
\t \t \t switch(FLAG) 
 
\t \t \t { 
 
\t \t \t \t case 0: 
 
\t \t \t \t \t alert("[Symbol=0]"); 
 
\t \t \t } 
 
\t \t } 
 
\t \t function Test() 
 
\t \t { 
 

 
\t \t \t if(b1==0 && b2==0 && b3==0) 
 
\t \t \t { 
 
\t \t \t \t Result(0); \t \t \t \t \t 
 
\t \t \t } \t \t \t \t \t \t \t \t 
 
\t \t \t 
 
\t \t } 
 

 
\t \t function GetValues() 
 
\t \t { 
 
\t \t \t var temp = ""; 
 
\t \t \t var temp2 =5; \t \t \t 
 
\t \t \t for (var i=1; i<=9; i++) 
 
\t \t \t { 
 
\t \t \t \t temp = "sq"+i; \t \t \t \t 
 
\t \t \t \t if (document.getElementById(temp).value != "" && document.getElementById(temp).value != null) 
 
\t \t \t \t { 
 
\t \t \t \t \t temp2 = parseInt(document.getElementById(temp).value); 
 
\t \t \t \t \t alert(temp2); \t \t \t \t 
 
\t \t \t \t } 
 
\t \t \t \t if(temp2==0 || temp2==1) 
 
\t \t \t \t { 
 
\t \t \t \t \t switch(i) 
 
\t \t \t \t \t { 
 
\t \t \t \t \t \t case 1: \t \t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t b1=temp2; \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t break; 
 
\t \t \t \t \t \t case 2: \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t b2=temp2; 
 
\t \t \t \t \t \t break; 
 
\t \t \t \t \t \t case 3: \t \t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t b3=temp2; 
 
\t \t \t \t \t \t break; \t \t \t \t \t 
 
\t \t \t \t \t } 
 
\t \t \t \t Test(); 
 
\t \t \t \t } 
 
\t \t \t } \t \t \t \t 
 
\t \t } 
 
</script>
<HTML> \t 
 
\t <TITLE>TEST Program</TITLE> 
 
\t <HEAD><h3 align="center">TEST Program</h3></HEAD> 
 
\t <BODY> \t \t \t \t 
 
\t \t <FORM> 
 
\t \t \t <TABLE border= "1" align ="center" width = "30%" height="50%"> 
 
\t \t \t \t <tr> 
 
\t \t \t \t \t <td><input type="text" id="sq1" style= "font-size:50pt; text-align:center; width:100%; height:100%" onchange = "GetValues()" ></td> \t 
 

 
\t \t \t \t \t <td><input type="text" id="sq2" style= "font-size:50pt; text-align:center; width:100%; height:100%" onchange = "Getvalues()" ></td> \t 
 

 
\t \t \t \t \t <td><input type="text" id="sq3" style= "font-size:50pt; text-align:center; width:100%; height:100%"onchange = "Getvalues()" ></td> 
 
\t \t \t \t </tr> \t \t \t 
 
\t \t \t \t \t \t \t \t 
 
\t \t \t </TABLE> 
 
\t \t </FORM> \t \t 
 
\t </BODY> 
 
</HTML>

+1

既然你說你剛學的基礎知識,我建議您切換閱讀材料 - 無論書或博客,你正在使用似乎是過時的,只是基礎上,資本要素和過時的屬性表。另外,你有一些無效的項目,比如你的'title'在'head'之外,你的'h3'在'head'而不是'body'。 – 2015-04-03 17:20:35

+0

我喜歡使用書籍作爲參考資料,而非博客或在線內容。 如果您知道我正在學習使用我的網絡工程課程中的筆記,那將會非常令人失望。猜猜我的老師是正統的。 你對HTML和JavaScript有何建議?我不願意使用CSS或PHP atm。 – 2015-04-05 14:30:35

回答

1

onchange事件調用get V alues()爲SQ1,但得到v alues()爲SQ2和SQ3。

+0

謝謝你,我不知道我是如何錯過這個的。 – 2015-04-03 18:12:02

1

Don Bottstein看起來是正確的,您的GetValues()函數在HTML中的某些標記中拼寫錯誤。

這樣做比將附加函數附加到HTML中每個標記更簡單的方法是事件傳播。也就是說,將一個事件附加到父項,然後使用if語句來確定被更改的事件是否是輸入,然後調用GetValues()函數。

有點像;

<tr id="values"> // Add an ID to the TR tag in the HTML 

document.getElementById("values").addEventListener("change", function(e) { 
    // e is the object that's triggering the event 
    if (e.target.type === "text") { 
      GetValues(); 
     } 
    }) 
相關問題