2015-12-19 96 views
-4

**此代碼未運行IE11給出錯誤:SCRIPT5007:無法獲取未定義或空引用的屬性'樣式' File:result.html,Line:7,Column:1,但這段代碼在ie8中運行平穩。我想運行IE11瀏覽器。如果代碼錯誤,爲什麼它在IE8中運行沒有任何錯誤。在代碼或IE11瀏覽器設置中需要進行必要的更改才能運行此代碼?我再次確認這相同的代碼運行平穩的IE8瀏覽器,它怎麼可能? **此代碼未運行IE11

<html> 
 
<head><title></title></head> 
 
<body> 
 
<script> 
 
function ff() 
 
{ 
 
document.getElementById('error').style.visibility="visible"; 
 
var rollno8=new Array('01','02','03','04','05','06','07','08','09','10'); 
 
var studentname8=new Array('ARUP DEY','B','C','D','E','F','G','H','I','J'); 
 
var fathersname8=new Array('DULAL CH. DEY','B','C','D','E','F','G','H','I','J'); 
 
var studentmarks8=new Array('50','60','55','65','70','74','75','52','45','89'); 
 
var m=document.getElementById('rollnumber').value; 
 
var errormessage=document.getElementById('showerrormessage'); 
 
if(m=="") 
 
{ 
 
document.getElementById('showerrormessage').style.visibility="visible"; 
 
errormessage.innerHTML="PLEASE PROVIDE YOUR ROLL NUMBER"; 
 
} 
 

 
else 
 
{ 
 
for(i=0;i<=9;i++) 
 
{ 
 
var student_name=document.getElementById('studentname'); 
 
var student_fname=document.getElementById('studentfname'); 
 
var student_rollnumber=document.getElementById('studentno'); 
 
var student_marks=document.getElementById('studentmarks'); 
 
var student_status=document.getElementById('studentstatus'); 
 
var a=studentname8[i]; 
 
var b=rollno8[i]; 
 
var c=fathersname8[i]; 
 
var d=studentmarks8[i]; 
 
if(m==b) 
 
{ 
 
document.getElementById('error').style.visibility="hidden"; 
 
document.getElementById('getresult').style.visibility="visible"; 
 
student_name.innerHTML=a; 
 
student_rollnumber.innerHTML=b; 
 
student_fname.innerHTML=c; 
 
student_marks.innerHTML=d; 
 
if(d>=50) 
 
{ 
 
student_status.innerHTML="PASS"; 
 
} 
 
else 
 
{ 
 
student_status.innerHTML="FAILED"; 
 
} 
 
} 
 

 
else 
 
{ 
 
var ok=1; 
 
} 
 

 
} 
 

 
if(ok==1) 
 
{ 
 
document.getElementById('showerrormessage').style.visibility="visible"; 
 
errormessage.innerHTML="THIS ROLL NUMBER DOES NOT EXIST"; 
 
} 
 

 
} 
 
} 
 

 

 
function resetMyResult() 
 
{ 
 
document.getElementById('getresult').style.visibility="hidden"; 
 
document.getElementById('showerrormessage').style.visibility="hidden"; 
 
} 
 
</script> 
 
<form name="result"> 
 
<table align="center"style="border-color:black"border="2px"name="showmyresultform"> 
 
<tr> 
 
<td style="background-color:#cceecc;font-size:12px;font-weight:bold">ROLL NUMBER</TD> 
 
<TD style="background-color:#cceecc"><INPUT TYPE="TEXT"name="rollnumber"value=""size="20"maxlength="2"></td> 
 
</tr> 
 
<tr> 
 
<td colspan="2" style="background-color:#cceecc"align="center"><input type="button"value="SUBMIT"style="background-color:green"onclick="ff()"> 
 
<input type="reset"value="RESET"style="background-color:green"onClick="resetMyResult()"></td> 
 
</tr> 
 
</table> 
 
</form> 
 

 
<form name="getresult"style="visibility:hidden"> 
 
<table style="border-color:black"border="2px"name="showmyresult"align="center"> 
 
<tr> 
 
<td style="background-color:green;font-size:12px;font-weight:bold;color:white">STUDENT'S NAME :</td><td><div id="studentname"style="background-color:#cceecc;color:black;font-size:12px;font-weight:bold"align="center"></div></td> 
 
</tr> 
 
<tr> 
 
<td style="background-color:green;font-size:12px;font-weight:bold;color:white">FATHER'S NAME :</td><td><div id="studentfname"style="background-color:#cceecc;color:black;font-size:12px;font-weight:bold"align="center"></div></td> 
 
</tr> 
 
<tr> 
 
<td style="background-color:green;font-size:12px;font-weight:bold;color:white">ROLL NO. :</td><td><div id="studentno"style="background-color:#cceecc;color:black;font-size:12px;font-weight:bold"align="center"></div></td> 
 
</tr> 
 
<tr> 
 
<td style="background-color:green;font-size:12px;font-weight:bold;color:white">MARKS OBTAINED :</td><td><div id="studentmarks"style="background-color:#cceecc;color:black;font-size:12px;font-weight:bold"align="center"></div></td> 
 
</tr> 
 
<tr> 
 
<td style="background-color:green;font-size:12px;font-weight:bold;color:white">STATUS :</td><td><div id="studentstatus"style="background-color:#cceecc;color:black;font-size:12px;font-weight:bold"align="center"></div></td> 
 
</tr> 
 
<tr> 
 
<td colspan="2"align="center"><div id="showprint"><input type="button"value="PRINT"onClick="print()"style="background-color:#ccffff;font-size:12px;font-weight:bold;color:black"></div> 
 
</table> 
 
</form> 
 
<form name="error"> 
 
<table align="center"> 
 
<tr> 
 
<td> 
 
<div id="showerrormessage"style="background-color:;font-size:14px;font-weight:bold;color:RED" align="center"value=""></div> 
 
</td> 
 
</tr> 
 
</table> 
 
</form> 
 
</body> 
 
</html>​

+0

如果您可以將您的JavaScript移動到主體的最底部或放置在document.onload中,事實是當你定義函數時你的元素節點錯誤不存在ff() –

+0

@ThiagoMelo定義函數時沒有任何區別。它只在被調用時才重要。 – JJJ

回答

0

,如果你想通過ID e.g的document.getElementById( '錯誤')來訪問元素 請設置HTML元素的ID。

<form id="error"> 

您可能需要爲你指定名稱的HTML元素,但訪問使用的getElementById

1

幾個問題元素此修復程序適用於許多地方,在你的HTML ..

一)您正在調用:document.getElementById('error'),但您確實沒有任何id等於error的元素。你在DOM中有什麼是:<form name="error">

更改代碼:document.getElementsByName('error')[0].style.visibility="visible";

B)document.getElementById('rollnumber').value同樣的事情。更改<INPUT TYPE="TEXT"name="rollnumber"value=""size="20"maxlength="2"><INPUT TYPE="TEXT" id="rollnumber" value="" size="20" maxlength="2">

C)請遵循HTML5標準的空間大約分離HTML屬性:

..there must be a space character separating the two

http://www.w3.org/TR/html5/syntax.html#start-tags

完整的代碼是在這裏:

<html> 
<head><title></title></head> 
<body> 
<script> 
function ff() 
{ 
document.getElementsByName('error')[0].style.visibility="visible"; 
var rollno8=new Array('01','02','03','04','05','06','07','08','09','10'); 
var studentname8=new Array('ARUP DEY','B','C','D','E','F','G','H','I','J'); 
var fathersname8=new Array('DULAL CH. DEY','B','C','D','E','F','G','H','I','J'); 
var studentmarks8=new Array('50','60','55','65','70','74','75','52','45','89'); 
var m=document.getElementById('rollnumber').value; 
var errormessage=document.getElementById('showerrormessage'); 
if(m=="") 
{ 
document.getElementById('showerrormessage').style.visibility="visible"; 
errormessage.innerHTML="PLEASE PROVIDE YOUR ROLL NUMBER"; 
} 

else 
{ 
for(i=0;i<=9;i++) 
{ 
var student_name=document.getElementById('studentname'); 
var student_fname=document.getElementById('studentfname'); 
var student_rollnumber=document.getElementById('studentno'); 
var student_marks=document.getElementById('studentmarks'); 
var student_status=document.getElementById('studentstatus'); 
var a=studentname8[i]; 
var b=rollno8[i]; 
var c=fathersname8[i]; 
var d=studentmarks8[i]; 
if(m==b) 
{ 
document.getElementById('error').style.visibility="hidden"; 
document.getElementById('getresult').style.visibility="visible"; 
student_name.innerHTML=a; 
student_rollnumber.innerHTML=b; 
student_fname.innerHTML=c; 
student_marks.innerHTML=d; 
if(d>=50) 
{ 
student_status.innerHTML="PASS"; 
} 
else 
{ 
student_status.innerHTML="FAILED"; 
} 
} 

else 
{ 
var ok=1; 
} 

} 

if(ok==1) 
{ 
document.getElementById('showerrormessage').style.visibility="visible"; 
errormessage.innerHTML="THIS ROLL NUMBER DOES NOT EXIST"; 
} 

} 
} 


function resetMyResult() 
{ 
document.getElementById('getresult').style.visibility="hidden"; 
document.getElementById('showerrormessage').style.visibility="hidden"; 
} 
</script> 
<form name="result"> 
<table align="center" style="border-color:black" border="2px" name="showmyresultform"> 
<tr> 
<td style="background-color:#cceecc;font-size:12px;font-weight:bold">ROLL NUMBER</TD> 
<TD style="background-color:#cceecc"><INPUT TYPE="TEXT" id="rollnumber" value="" size="20" maxlength="2"></td> 
</tr> 
<tr> 
<td colspan="2" style="background-color:#cceecc" align="center"><input type="button" value="SUBMIT" style="background-color:green" onclick="ff()"> 
<input type="reset" value="RESET" style="background-color:green" onClick="resetMyResult()"></td> 
</tr> 
</table> 
</form> 

<form name=" getresult" style="visibility:hidden"> 
<table style="border-color:black" border="2px" name="showmyresult" align="center"> 
<tr> 
<td style="background-color:green;font-size:12px;font-weight:bold;color:white">STUDENT'S NAME :</td><td><div id="studentname" style="background-color:#cceecc;color:black;font-size:12px;font-weight:bold" align="center"></div></td> 
</tr> 
<tr> 
<td style="background-color:green;font-size:12px;font-weight:bold;color:white">FATHER'S NAME :</td><td><div id="studentfname" style="background-color:#cceecc;color:black;font-size:12px;font-weight:bold" align="center"></div></td> 
</tr> 
<tr> 
<td style="background-color:green;font-size:12px;font-weight:bold;color:white">ROLL NO. :</td><td><div id="studentno" style="background-color:#cceecc;color:black;font-size:12px;font-weight:bold" align="center"></div></td> 
</tr> 
<tr> 
<td style="background-color:green;font-size:12px;font-weight:bold;color:white">MARKS OBTAINED :</td><td><div id="studentmarks" style="background-color:#cceecc;color:black;font-size:12px;font-weight:bold" align="center"></div></td> 
</tr> 
<tr> 
<td style="background-color:green;font-size:12px;font-weight:bold;color:white">STATUS :</td><td><div id="studentstatus" style="background-color:#cceecc;color:black;font-size:12px;font-weight:bold" align="center"></div></td> 
</tr> 
<tr> 
<td colspan="2" align="center"><div id="showprint"><input type="button" value="PRINT" onClick="print()" style="background-color:#ccffff;font-size:12px;font-weight:bold;color:black"></div> 
</table> 
</form> 
<form name="error"> 
<table align="center"> 
<tr> 
<td> 
<div id="showerrormessage" style="background-color:;font-size:14px;font-weight:bold;color:RED" align="center" value=""></div> 
</td> 
</tr> 
</table> 
</form> 
</body> 
</html> 
+1

以上測試結果在IE11中回答,並按預期工作。 – Roberto

+0

謝謝。測試您的代碼 - >當文本框爲空時按下提交按鈕時正確地給出結果,但重置按鈕不工作,其他腳本在IE11.Pl中不起作用提供您的必要建議。 –

+0

@AKKAR不客氣。我不知道爲什麼重置按鈕不起作用(現在看不到 - 我不在我的電腦),但它可以類似於上面提到的a)和b)點。請檢查錯誤控制檯(FireFox中的「Ctrl + Shift + K」)並查看錯誤。確保你不會將元素'name'與元素的'id'混淆。如果這樣可以,並且你仍然會得到錯誤,那麼也許再次檢查你的代碼的業務邏輯本身。 –