为什么我看到'函数未定义'当我'I’我确信我的职能已经确定了

Why am I seeing 'function not defined' on my error console when I'm sure my function IS defined?

本文关键字:我的 函数 我看 未定义 当我 为什么 我确信      更新时间:2023-09-26

我使用的代码应该根据单选按钮的选择来更改窗体的"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();">

不能有一个带有src和脚本内容的script标记。您的浏览器正在加载脚本文件,并忽略其中的内容,因此您的函数未定义。这就是你想要的:

<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>

也许这就是您想要的:

<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并忽略标记本身中的内容,或者抛出错误。请参阅带有src AND内容的脚本标记是什么意思?

您实际上是在脚本标记中编写代码,还是从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>