Solved

Hiding/Unhiding HTML objects with VBScript

Posted on 2009-07-07
8
675 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
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Things That Drive Us Nuts Have you noticed the use of the reCaptcha feature at EE and other web sites?  It wants you to read and retype something that looks like this.Insanity!  It's not EE's fault - that's just the way reCaptcha works.  But it is …
Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
In this tutorial viewers will learn how add a scalable full-width header using CSS3. Create a new HTML document with an internal stylesheet. Set a tiled background.:  Create a new div and name it Header. Position it with position:absolute at the top…
In this tutorial viewers will learn how to style a corner ribbon overlay for an image using CSS Create a new class by typing ".Ribbon":  Define the class' "display:" as "inline-block": Define its "position:" as "relative": Define its "overflow:" as …

758 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

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now