Solved

Javascript visiblity

Posted on 2008-06-26
3
461 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

Independent Software Vendors: 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

Suggested Solutions

Title # Comments Views Activity
Checkbox 4 369
Optimize my jQuery div toggle 3 114
Javascript - bubble sort does not work 8 90
Jquery Tree Grid 7 248
A company’s centralized system that manages user data, security, and distributed resources is often a focus of criminal attention. Active Directory (AD) is no exception. In truth, it’s even more likely to be targeted due to the number of companies …
This article summaries thoughts and ideas from two years of sustained use. It provides good reasoning to make the jump to Windows 10.

679 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