繁体   English   中英

当我确定函数已定义时,为什么在错误控制台上看到“函数未定义”?

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

我使用的代码应该根据单选按钮的选择更改表单的“操作”属性。 目前无法正常运作,我正在尝试找出原因。 根据我的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和脚本内容的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>

也许这就是您想要的:

<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内容的脚本标签是什么意思?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM