如何修复此问题,JavaScript错误:document.forms。null不是一个对象
在我的jsp页面中,我发现脚本错误错误消息是:文档。表单[0]为空,不是对象。当我单击注销时。注销工作正常,并重定向到default.jsp。但是我的default.jsp没有显示任何内容,只是一个空白页面。我检查了default.jsp页面的查看源代码。整个页面未加载。它只加载到body标签的第1行。下面是default.jsp的代码。如何修复此问题,JavaScript错误:document.forms。null不是一个对象,javascript,Javascript,在我的jsp页面中,我发现脚本错误错误消息是:文档。表单[0]为空,不是对象。当我单击注销时。注销工作正常,并重定向到default.jsp。但是我的default.jsp没有显示任何内容,只是一个空白页面。我检查了default.jsp页面的查看源代码。整个页面未加载。它只加载到body标签的第1行。下面是default.jsp的代码。 <! doctype html> <html language="en"> <%@ page language="jav
<! doctype html>
<html language="en">
<%@ page language="java" contentType="text/html" %>
<%@ session ="false" %>
<head>
<script type="text/javascript">
function closeWarning(){
document.forms[0].reset();
}
</script>
</head>
<body onLoad="closeWarning();" class="page-design">// page loaded till here
<jsp:include flush="true" page="/myCart/header.jsp"/>
//---other component of body----
</body>
函数closeWarning(){
document.forms[0].reset();
}
//页面加载到这里
//---身体其他部位----
请提出一些解决方法。谢谢。使用
var forms=document.getElementsByTagName('form')
而不是document.forms
,然后迭代它们以重置它们。我敢肯定,您的页面中可能只有不到3个表单(在这种情况下,甚至没有一个表单)。您决不能无条件地假设存在某些东西(如集合成员,如表单[0]
)。在代码中这样做是错误的,因为它会触发运行时错误
要么在调用方法之前测试它们的存在性:
if (document.forms[0]) {
document.forms[0].reset();
}
// ...and two more
或者,您可以使用一种不太容易出错的方法来重置每个现有表单——在本例中,是一个循环
for (var i=0; i<document.forms.length; i++) {
document.forms[i].reset();
}
for(var i=0;i@greut,感谢您的回复。您的意思是我应该像var forms=document.getElementsByTagName('myForm')那样使用它吗;。如何迭代此链接,请给我任何链接的参考。感谢Tomalak,我现在使用了您的建议,我没有收到任何错误,但页面上仍然没有显示任何内容。页面仍然加载到标记的第1行。@Kmme83您确定您的JSP输出合理的HTML吗?您检查了吗?JSP输出正确的HTML,但不是ev每次。这是5次1次中的一次,它没有显示任何东西