Solved

Javascript visiblity

Posted on 2008-06-26
3
456 Views
Last Modified: 2008-07-16
I'm trying to write a simiple function that makes a div visible or invisible in Javascript,
Please show me whats wrong with this code
<head>
    <script>
        function showHide(elemShow)
        {
            
             if (document.getElementById(elemShow).style.visibility = 'visible'){
                        alert('hello again');
                        document.getElementById(elemShow).style.display = 'none';                   
                    }
             else if (document.getElementById(elemShow).style.display = 'none') {  
                        document.getElementById(elemShow).style.display = 'block';
                        document.getElementById(elemShow).style.visibility = 'visible';
                         alert('hello');
                              }
             return true;
             }
    </script>
</head>
<body>
    <div style="float:left;"><input type=radio name="address_type" value="1" checked onClick="showHide('box');"></div>
    <div style="float:left;">Postal Box</div>
      <div style="clear:both;"></div>

    <div id="box" style="display: none;">
        <table>
            <tr>
                <td>The Postal Box fields here</td>
            </tr>
        </table>
    </div>
</body>
0
Comment
Question by:healthmanagement
  • 2
3 Comments
 
LVL 41

Expert Comment

by:HonorGod
ID: 21874815
It helps if you simplify things by removing duplication.  For example:

A big problem is that in order to test for two string values being equal, you need to use ==, not the single = used for assignment
<script type='text/javascript'>

  function showHide( id ) {

    var ele = document.getElementById( id );

    var result = false;

    if ( ele ) {

      if ( ele.style.visibility == 'visible' ) {

        alert( 'hello again' );

        ele.style.visibility = 'hidden';

        result = true;

      } else if ( ele.style.display == 'none' ) {

        ele.style.display = 'block';

        ele.style.visibility = 'visible';

        alert( 'hello' );

        result = true;

      }

    }

    return result;

</script>

Open in new window

0
 
LVL 41

Expert Comment

by:HonorGod
ID: 21874830
oops, I forgot the closing '}' ... sorry
<script type='text/javascript'>

  function showHide( id ) {

    var ele = document.getElementById( id );

    var result = false;

    if ( ele ) {

      if ( ele.style.visibility == 'visible' ) {

        alert( 'hello again' );

        ele.style.visibility = 'hidden';

        result = true;

      } else if ( ele.style.display == 'none' ) {

        ele.style.display = 'block';

        ele.style.visibility = 'visible';

        alert( 'hello' );

        result = true;

      }

    }

    return result;

  }

</script>

Open in new window

0
 
LVL 3

Accepted Solution

by:
itbeme earned 125 total points
ID: 21904834
You got to much code there for that.

Here this guy will tell you 7 ways
http://www.dustindiaz.com/seven-togglers/

something like this is all you need
function toggle(obj) {
      var el = document.getElementById(obj);
      if ( el.style.display != 'none' ) {
            el.style.display = 'none';
      }
      else {
            el.style.display = '';
      }
}

also make sure you're using a javascript bugger.  You're going to have a lot of headaches if you're debugging javascript by watching for the little script error icon.  At least use FF's script debugger.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

We need a new way to communicate time sensitive or critical info.   The best part of my role at xMatters is visiting our clients all over the world to learn about how they operate their businesses, share insights that xMatters has gleaned across…
Some code to ensure data integrity when using macros within Excel. Also included code that helps secure your data within an Excel workbook.
This is a video that shows how the OnPage alerts system integrates into ConnectWise, how a trigger is set, how a page is sent via the trigger, and how the SENT, DELIVERED, READ & REPLIED receipts get entered into the internal tab of the ConnectWise …
Need to grow your business through quality cloud solutions? With everything required to build a cloud platform and solution, you may feel like the distance between you and the cloud is quite long. Help is here. Spend some time learning about the Con…

919 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

14 Experts available now in Live!

Get 1:1 Help Now