Solved

Javascript visiblity

Posted on 2008-06-26
3
462 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

This article describes how to import an Outlook PST file to Office 365 using a third party product to avoid Microsoft's Azure command line tool, saving you time.
Configuring Remote Assistance for use with SCCM
This video shows how to use Hyena, from SystemTools Software, to update 100 user accounts from an external text file. View in 1080p for best video quality.

737 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