在我的jsp页面中,我收到脚本错误。 错误消息是:document.forms [0]为null而不是对象。当我点击SignOut时。 sign out工作正常,重定向到default.jsp。但是我的default.jsp没有显示任何空白页面。我查看了default.jsp页面的查看源。整个页面未加载。它只加载到正文标记的第1行。以下是 default.jsp的代码。
<! 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>
请建议如何解决此问题。谢谢。
答案 0 :(得分:0)
使用var forms = document.getElementsByTagName('form');
代替document.forms
,然后迭代它们以重置它们。我很确定你的页面中可能只有不到3个表单(在这种情况下,甚至不是一个)。
答案 1 :(得分:0)
你绝不能无条件地假设事物(如集合成员,如forms[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();
}
我推荐后者。