Solved

Hiding/Unhiding HTML objects with VBScript

Posted on 2009-07-07
8
682 Views
Last Modified: 2012-05-07
Hello,

I'm trying to hide/unhide certain objects based on a condition.  My hiding works, but my unhiding doesn't, can anyone see why?

I've successfuly tested my conditions and element names.  The only thing that fails is .visibility = "visable"
<script language="VBScript">
 
'hideCondition = "True" or "False"
 
If hideCondition = "True" Then
 
frm.elements("cboF" & fID & "V" & vID).style.visibility = "hidden" 'WORKS
 
Else
frm.elements("cboF" & fID & "V" & vID).style.visibility = "visible" 'DOESN'T WORK
 
end If
 
</script>

Open in new window

0
Comment
Question by:APD_Toronto
  • 4
  • 3
8 Comments
 
LVL 12

Expert Comment

by:Chad Haney
ID: 24797600
Seems like it is not an issue with the visibility code you have.  Just double checked to make sure that is the correct VBscript format.

Your hideCondition looks like it must not ever be evaluating to false.

Here is the example code I used to test it.
<html>
<head>
 
</head>
<body>
<form>
<input type="text" id="cboF1" name="cboF1" value="1"/>
<input type="text" id="cboF2" name="cboF2" value="2"/>
</form>
<script language="VBScript">
 
set el =document.getElementById("cboF1")
el.style.visibility = "hidden"
el.style.visibility = "visible"
set el =document.getElementById("cboF2")
el.style.visibility = "hidden"
 
</script>
</body>
</html>

Open in new window

0
 

Author Comment

by:APD_Toronto
ID: 24797700
No, I thought the same thing, that my False condition is not being reached, but I have a msgbox() in both conditions, and they are firing.
I am including my entire script, it may be little had to get the whole picture, but I think the key point is that both message boxes are popping up.
 

		<script language="VBScript">
		
			fCount = CInt(frm.elements("txtFCount").value)
			strFIDs = frm.elements("txtFIDs").value
					
		
			For f = 1 To fCount
				fID = Left(strFIDs, InStr(1, strFIDs, ",") - 1)
				strFIDs = Mid(strFIDs, Instr(1, strFIDs, ",") + 1, Len(strFIDs) - Instr(1, strFIDs, ",") + 1) 
				
				v=0
				
				depStatus = frm.elements("txtFStat" & fID).value
				'msgbox("stat=" & depStatus)
				If depStatus = "True" Then 
			
					vCount = CInt(frm.elements("txtVCount").value)
					strVIDs = frm.elements("txtVIDs").value	
					For v = 1 To vCount
						vID = Left(strVIDs, InStr(1, strVIDs, ",") - 1)
						strVIDs = Mid(strVIDs, Instr(1, strVIDs, ",") + 1, Len(strVIDs) - Instr(1, strVIDs, ",") + 1) 
				
						frm.elements("cboF" & fID & "V" & vID).style.visibility = "hidden"
						msgbox("hidden cboF" & fID & "V" & vID)
					Next 'vendor
					
				ElseIf depStatus = "False" Then 
			
					vCount = CInt(frm.elements("txtVCount").value)
					strVIDs = frm.elements("txtVIDs").value	
					For v = 1 To vCount
						vID = Left(strVIDs, InStr(1, strVIDs, ",") - 1)
						strVIDs = Mid(strVIDs, Instr(1, strVIDs, ",") + 1, Len(strVIDs) - Instr(1, strVIDs, ",") + 1) 
						
						el = frm.elements("cboF" & fID & "V" & vID)
						el.style.visibility = "visible"
						msgbox("visible cboF" & fID & "V" & vID)
					Next 'vendor
					
				End If
			
			Next 'flight
</script>

Open in new window

0
 

Author Comment

by:APD_Toronto
ID: 24825743
The correct syntax was:
frm.elements("cboF" & fID & "V" & vID).style.display = "none"
 
 
frm.elements("cboF" & fID & "V" & vID).style.display = "block"

Open in new window

0
Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

 
LVL 12

Expert Comment

by:Chad Haney
ID: 24826486
display is actually a different css attirbute than visibility.  VBscript is able to adjust both attributes.

Display none will remove the placement of the item, visibility will hide the item, but the space is still reserved.
0
 

Author Comment

by:APD_Toronto
ID: 24826584
The bottom line is that visibility failed to work
0
 
LVL 12

Accepted Solution

by:
Chad Haney earned 500 total points
ID: 24826798
What browser is it failing on?  If it's anything except for IE you want it used for I would recommend changing over to javascript.

The code snippet I have above demonstrates it being functional on IE, hiding both then showing the first only.
0
 

Author Closing Comment

by:APD_Toronto
ID: 31600748
I awarded you points.  Happy?
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

SASS allows you to treat your CSS code in a more OOP way. Let's have a look on how you can structure your code in order for it to be easily maintained and reused.
Finding original email is quite difficult due to their duplicates. From this article, you will come to know why multiple duplicates of same emails appear and how to delete duplicate emails from Outlook securely and instantly while vital emails remai…
In this Micro Tutorial viewers will learn how to create navigation buttons that change on rollover, using CSS (Continuation of the CSS Image Sprite tutorial) Create a parent ID for all the list items       - Specify position: absolute and display: block…
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question