Phorden
Phorden

Reputation: 1034

Hide/show div with javascript

I would like to show a form field textbox only when a certain checkbox is checked, and hide it when it is unhecked. I have gotten the code to make it hide when I check the box, but the textbox is displayed when the page is loaded until I check the box, which is opposite of what I would like to accomplish. I am pretty newbish with javascript so I am sure this is pretty elementary. Thanks for any help.

HTML:

<input type="checkbox" onclick="ShowCCFields(this.value);" name="CAT_Custom_510969" id="CAT_Custom_510969_7" value="Other..." />
Other...

<div class="item" id="other">
    <label for="CAT_Custom_510972">Other:</label><br />
    <textarea onkeydown="if(this.value.length&gt;=4000)this.value=this.value.substring(0,3999);" class="cat_listbox" rows="4" cols="10" id="CAT_Custom_510972" name="CAT_Custom_510972"></textarea>
</div>  

javascript:

// Hide or show textarea if the other checkbox field is checked
        var voucher = document.getElementById("CAT_Custom_510969_7");
        function ShowCCFields(val) {                            
            if (!document.getElementById('other'))
                return;         
            if (val == voucher.checked)
                document.getElementById('other').style.display = 'inline';              
            else
                document.getElementById('other').style.display = 'none';
        }   

Upvotes: 0

Views: 6208

Answers (3)

Jean-michel Laforge
Jean-michel Laforge

Reputation: 1

Set Display to none in the control you want to hide :

<div class="item" id="other" style="display: none;">

And In your js Function :

document.getElementById('other').style.display = 'inline';              

Upvotes: 0

Huy Nguyen
Huy Nguyen

Reputation: 106

Why not set the display to none to begin with? You can do that in CSS or just add it to

<div class="item" id="other" style="display: none;">

Upvotes: 2

Scott Mermelstein
Scott Mermelstein

Reputation: 15397

Set the style to none in the HTML, just like you do in the javascript:

<div class="item" id="other" style="display:none;">

Upvotes: 2

Related Questions