功能未定义....我的函数调用不起作用

时间:2014-10-14 16:49:49

标签: javascript html

我需要有关此代码的帮助。我一直得到错误changeBG没有定义。

代码的工作方式是当我选择一个单选按钮时,背景会发生变化。如果我将函数更改为onclick事件中的内联函数,那么它可以正常工作,但如果我将函数移动到脚本部分,则它不起作用,例如: <input type="radio" id="red" name="change1" value=1 onclick="document.body.style.backgroundColor='red'" /><label for="red">Red</label><br /> 工作时改变背景红色

但是当我在脚本部分创建一个函数并在onlick事件中调用该函数时它不起作用,

不起作用的代码示例:

脚本:

<script type="text/javascript">      
  function changeBG(n)       
  {
    if (n==1)
        document.body.style.backgroundColor='red'";
    if (n==2)
        document.body.style.backgroundColor='yellow'";
    if (n==3)
        document.body.style.backgroundColor='green'";
    if (n==4)
        document.body.style.backgroundColor='orange'";      
  }
  </script>

HTML:

     <form id="jp2" name="jp2" method="get">                                                                          
        <input type="radio" id="red" name="change1" value=1 onclick="changeBG(1)" />
        <label for="red">Red</label><br />
        <input type="radio" id="Yellow" name="change1" value=2 onclick="changeBG(2)" />
        <label for="yellow">Yellow</label><br />
        <input type="radio" id="Green" name="change1" value=3 onclick="changeBG(3)"  />
        <label for="green">Green</label><br />
        <input type="radio" id="Orange" name="change1" value=4  onclick="changeBG(4)" />
        <label for="orange">Orange</label><br />
     </form>

2 个答案:

答案 0 :(得分:3)

backgroundColor='red'"
backgroundColor='yellow'"
backgroundColor='green'"
backgroundColor='orange'"

你看到那些额外的"引号?摆脱它们。

Your working code

在Firefox中,这会出现以下控制台错误。您应该学习如何进行一些简单的调试,以便尽早发现这些错误。

  

SyntaxError:unterminated string literal

答案 1 :(得分:0)

使用正确的引号。您使用了错误的额外报价。比如''"。由于这些额外引用导致JS错误,因此您是错误的,即函数未定义。

将js更改为以下。

&#13;
&#13;
 function changeBG(n) {
   if (n == 1)
     document.body.style.backgroundColor = 'red';
   if (n == 2)
     document.body.style.backgroundColor = 'yellow';
   if (n == 3)
     document.body.style.backgroundColor = 'green';
   if (n == 4)
     document.body.style.backgroundColor = 'orange';
 }
&#13;
<form id="jp2" name="jp2" method="get">
  <input type="radio" id="red" name="change1" value=1 onclick="changeBG(1)" />
  <label for="red">Red</label>
  <br />
  <input type="radio" id="Yellow" name="change1" value=2 onclick="changeBG(2)" />
  <label for="yellow">Yellow</label>
  <br />
  <input type="radio" id="Green" name="change1" value=3 onclick="changeBG(3)" />
  <label for="green">Green</label>
  <br />
  <input type="radio" id="Orange" name="change1" value=4 onclick="changeBG(4)" />
  <label for="orange">Orange</label>
  <br />
</form>
&#13;
&#13;
&#13;