我正在使用的代码应该根据单选按钮选择更改表单的“action”属性。它现在不起作用,我正在努力找出原因。根据我的Firefox错误控制台,函数'submitForm'没有定义 - 但我确定它已定义!!
有人可以帮忙吗?
代码如下:
头部内部(q1指的是单选按钮的名称属性):
<script type="text/javascript" src="scripts/javascript.js">
function submitForm() {
if (document.forms[0].q1[1].checked == true) {
document.forms[0].action = "q2.html";
}
else if (document.forms[0].q1[0].checked == true) {
document.forms[0].action = "q3.html";
}
else {
alert ('Please choose an option');
}
}
</script>
事件处理程序:
<form method="post" id="question1" onsubmit="return submitForm();">
答案 0 :(得分:5)
您不能拥有带有src
和脚本内容的cript标记。您的浏览器正在加载脚本文件,并忽略其中的内容,因此您的函数未定义。这就是你想要的:
<script type="text/javascript" src="scripts/javascript.js"></script>
<script type="text/javascript">
function submitForm() {
if (document.forms[0].q1[1].checked == true) {
document.forms[0].action = "q2.html";
}
else if (document.forms[0].q1[0].checked == true) {
document.forms[0].action = "q3.html";
}
else {
alert ('Please choose an option');
}
}
</script>
答案 1 :(得分:2)
也许这就是你想要的:
<script type="text/javascript" src="scripts/javascript.js"></script>
<script type="text/javascript">
function submitForm() {
if (document.forms[0].q1[1].checked == true) {
document.forms[0].action = "q2.html";
}
else if (document.forms[0].q1[0].checked == true) {
document.forms[0].action = "q3.html";
}
else {
alert ('Please choose an option');
}
}
</script>
通常,您不能拥有带有 src 的脚本标记和标记内的内容。大多数浏览器都会看到 src 并忽略标签内部的内容,或者抛出错误。见What does a script-Tag with src AND content mean?
答案 2 :(得分:1)
你实际上是在脚本标签中编写代码,还是从firefox中删除了?
因为您无法在具有src
属性的脚本标记内编写JavaScript。这应该是它的样子:
<script type="text/javascript" src="scripts/javascript.js"></script>
<script type="text/javascript">
function submitForm() {
if (document.forms[0].q1[1].checked == true) {
document.forms[0].action = "q2.html";
}
else if (document.forms[0].q1[0].checked == true) {
document.forms[0].action = "q3.html";
}
else {
alert ('Please choose an option');
}
}
</script>