我需要有关此代码的帮助。我一直得到错误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>
答案 0 :(得分:3)
backgroundColor='red'"
backgroundColor='yellow'"
backgroundColor='green'"
backgroundColor='orange'"
你看到那些额外的"
引号?摆脱它们。
在Firefox中,这会出现以下控制台错误。您应该学习如何进行一些简单的调试,以便尽早发现这些错误。
SyntaxError:unterminated string literal
答案 1 :(得分:0)
使用正确的引号。您使用了错误的额外报价。比如''"
。由于这些额外引用导致JS错误,因此您是错误的,即函数未定义。
将js更改为以下。
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;