• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 467
  • Last Modified:

Javascript visiblity

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
healthmanagement
Asked:
healthmanagement
  • 2
1 Solution
 
HonorGodCommented:
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
 
HonorGodCommented:
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
 
itbemeCommented:
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

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now