2015-12-14 101 views
1

它应该很简单。您有以下文字:当复选框(未选中)时显示另一个文本

您的尖叫:哎呀!

当你检查下面的复选框说

呐喊 “耶”,而不是! “!哎呦”

字应改为“耶!”:

你尖叫:耶!

所以我的身体(我想用一个函数来做到这一点):

Your scream: <script>GiveMeSomeScream()</script>!<hr> 
<input type="checkbox" name="whatever" id="ScreamYay"> Scream "yay" instead! 

但我有实际脚本问题。这是我第一次尝试:

function GiveMeSomeScream() 
{ if (document.GetElementById('ScreamYay').checked == "true") 
{ document.write("Yay"); 
} else 
{ document.write("Whoops"); 
}} 

但它只是不会工作。所以,我扩大了它这样的:

var yay = document.getElementById('ScreamYay').checked 
function GiveMeSomeScream() 
{ if (yay == "true") 
{ document.write("Yay"); 
} else 
{ document.write("Whoops"); 
}} 

现在它给“哎呦”每一次(即使我做选中复选框defaultly),这几乎是它。

我知道这很荒谬我甚至无法处理复选框,但我仍然很乐意提供任何帮助。

+0

JavaScript中的布尔常量是'true'和'false',没有引号。无论如何,你通常不需要明确地比较常量。 – Pointy

+0

此外,您在这里使用'document.write()'会导致根本性失败:该调用将清除整个页面,只剩下“Yay”或“Whoops”。 – Pointy

回答

1

变化if (yay == "true")if (yay)

+0

不幸的是,没有帮助。 – quoque

0

值从document.getElementById('elementID').checked返回将是一个布尔值。这进一步解释here。为了使用它,您可以使用@Alex建议的if(yay === true)if(yay)简单地测试该值。至于使用document.write,您需要包含像this这样的html标签(标记)。

0

您可以像下面这样做
您必须在复选框标签上添加onchange功能。
还的document.getElementById是错误的
的document.getElementById是正确
终于
的document.getElementById( “ScreamYay”)。检查== “真” 是错误的
的document.getElementById( “ScreamYay”)。检查= = true是对的

function GiveMeSomeScream() 
{ if (document.getElementById('ScreamYay').checked == true) 
{ document.write("Yay"); 
} else 
{ document.write("Whoops"); 
}} 
相关问题