Jump to content

Show/Hide Elements


tobeyt23

Recommended Posts

Trying to show or hide elements based on when a user selects a certain radio form input. What i have below doesn't seem to work any suggestions.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type = "text/javascript" language = "Javascript">
function Proof(obj) {
	if (document.getElementById('proof').checked.value == "no") {
		displayValue = "block";
	} else {
		displayValue = "none";
	}
	document.getElementById('proof_type').style.display = displayValue;
}

</script>
</head>

<body>
<form action="" method="post" enctype="multipart/form-data">
<input name="proof" type="radio" id="proof" tabindex="1" value="yes" onchange="Proof(this);" /> Yes
<input name="proof" type="radio" id="proof" tabindex="2" value="no" onchange="Proof(this);" /> No
<div id="proof_type" style="display:none;">Proof Type</div>
</form>
</body>
</html>

Link to comment
Share on other sites

You have two ids with the same value (id="proof"), ids should be uniqe for each element. Also, use onclick event to capture the user selection and since you passing the object to the function, you can just use obj.value

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type = "text/javascript" language = "Javascript">
function Proof(obj) {
	if (obj.value == "no") {
		// if you using class name to set the display property, use block.
		// if you set the style in the tag (e.g. <div style="display:none">
		// use nothing ""
		// the second is a better option for layout.

		displayValue = "";		
	} else {
		displayValue = "none";
	}
	document.getElementById('proof_type').style.display = displayValue;
}

</script>
</head>

<body>
<form action="" method="post" enctype="multipart/form-data">
<input name="proof" type="radio" id="proof_1" tabindex="1" value="yes" onclick="Proof(this);" /> Yes
<input name="proof" type="radio" id="proof_2" tabindex="2" value="no" onclick="Proof(this);" /> No
<div id="proof_type" style="display:none;">Proof Type</div>
</form>
</body>
</html>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.