大家好,我写下面的代码
<form name=f>
<input type=button value="Button1" onclick=b1click()>
<input type=button value="Buttone2" onclick=b2click()>
<script language=javascript>
function b1click()
{
f.action="Login.jsp";
f.submit();
}
function b2click()
{
f.action="Logout.jsp";
f.submit();
}
</script>
</form>
此代码在Internet Explorer中正常工作但该操作在Mozilla Firefox 3.6.2中不起作用如何解决此问题?请任何人帮助我。 感谢
答案 0 :(得分:4)
我知道这听起来很讽刺,但问题的真相是:不再是1995年。
这段代码在十年前就会发挥很大作用,但自那时起标准和规范发生了重大变化。
让我们从顶部开始:
<form name=f>
所有 html属性值都应该用引号括起来。为了保持一致,请使用双引号:<form name="f">
要好得多。
<input type="button" value="Button1" onclick="b1click()">
避免内联脚本事件。如果功能发生变化,或者您想要删除某个功能,则必须通过每个页面并调整该功能。更好的方法是给按钮一个ID,并通过脚本添加onclick事件:
HTML:
<input type="button" value="Button1" id="button1">
JS:
document.getElementById('button1').onclick = b1click;
现在转到剧本:
<script language=javascript>
您应该将type
属性与有效MIME type一起使用。此外,只要有可能,请将脚本移动到外部脚本文件。如果无法做到这一点,请确保对您的脚本进行XML编码,或将其封装在CDATA
标记中:
<script type="text/javascript" src="path/to/script.js"></script>
OR
<script type="text/javascript">
/* <![CDATA[ */
... some code ...
/* ]]> */
</script>
最后是你脚本的真正问题。
您引用的f
属性是document
的成员,而不是 window
。我相信IE会将参考文献放在两者上,但依赖这两种行为是不安全的。
为表单提供ID:<form id="f">
,并从b[12]click
函数中获取元素
function b1click()
{
var f = document.getElementById('f');
f.action = 'Login.jsp';
f.submit();
}
答案 1 :(得分:2)
首先,将name="foo"
更改为id="foo"
。名称主要用于在表单中。
现在,尝试使用document.formID
引用您的表单,而不只是formID
。 formID
是一个未定义的变量,但document.formID
是实际的表单元素:
function b1click()
{
document.f.action="Login.jsp";
document.f.submit();
}
function b2click()
{
document.f.action="Logout.jsp";
document.f.submit();
}
答案 2 :(得分:1)
给表单一个id并使用以下命令引用它:
var form = document.getElementById('formId');
答案 3 :(得分:0)
您应该引用输入属性或任何属性。并且您的script
不属于表单之后,例如在body
中,而是在HEAD元素中。
适用于IE,Firefox和Chrome。
<html>
<head>
<script language="javascript">
function b1click()
{
f.action="Login.jsp"; // better is document.f., but f. appears to work as well
f.submit();
}
function b2click()
{
f.action="Logout.jsp";
f.submit();
}
</script>
</head>
<body>
<form name="f">
<input type="button" value="Button1" onclick="b1click()">
<input type="button" value="Buttone2" onclick="b2click()">
</form>
</body>
</html>
答案 4 :(得分:0)
有几种方法可以引用您的表单。
如果您将表单定义为<form name="Login" id="LoginFrom"></form>
,
方法1
如果您的表单是页面中唯一的表单,则可以使用:
document.forms[0].action = 'Login.jsp';
方法2
如果您的表单不是页面中唯一的表单,您可以使用表单名称来引用表单,例如
document.Login.action = 'Login.asp';
方法3
表单也可以使用DOM函数getElementByID
引用。
document.getElementByID('LoginForm').action = 'Login.asp'