现场代码:http://jsfiddle.net/vy4nY/
我正在关注this challenge,但我遇到了一些问题。我正在尝试仅在单击复选框时显示“电子邮件地址”框。我做错了什么?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>JavaScript Challenges</title>
<style type="text/css">
#emailpara {visibility:hidden;}
</style>
</head>
<body>
<form action="">
<fieldset>
<legend>Email subscriptions</legend>
<p id="subscribepara">
<label>
<input type="checkbox" name="subscribe" id="subscribe">
Yes! I would like to receive the occasional newsletter via email.
</label>
</p>
<p id="emailpara">
<label>
Email Address:
<input type="text" name="email" id="email">
</label>
</p>
</fieldset>
</form>
<script type="text/javascript">
document.getElementById('subscribe').onclick = (document.getElementById('subscribe').checked ? (document.getElementById('emailpara').style.visibility = 'visible') : (document.getElementById('emailpara').style.visibility = 'hidden'));
</script>
</body>
</html>
答案 0 :(得分:3)
onclick处理程序应该是一个函数。使用:
document.getElementById('subscribe').onclick = function() {
document.getElementById('emailpara').style.visibility = this.checked ? 'visible' : 'hidden';
}
答案 1 :(得分:1)
您需要将其作为功能:
document.getElementById('subscribe').onclick = function() {
document.getElementById('subscribe').checked ? document.getElementById('emailpara').style.visibility = 'visible' : document.getElementById('emailpara').style.visibility = 'hidden';
}
更新了jsFiddle:http://jsfiddle.net/yahavbr/vy4nY/1/