views:

180

answers:

3

Hey everyone, I am trying to hide/show different html elements (div, etc...) based on whether a checkbox is checked or if a specific value is chosen from a dropdown box. I was wondering if someone can help me out. The html element is defined along the lines of this (below), and i'm not sure how to reference it by name with brackets in it. The page i'm using has jquery enabled, and i'd like to use it if possible. Thanks!

<input type="checkbox" name="addons[2]" />

Also - I cannot modify the checkbox's code.

+2  A: 

jQuery to check if element is checked:

$("input[name='addons[2]']").attr("checked")

jQuery to loop over such elements that are checked:

$("input[name^='addons']:checked").each(function() {
    // ...
});
enbuyukfener
+1  A: 

Here is an inline non-jQuery solution that bypasses the need to reference the square brackets entirely by using the javascript this keyword. Assuming you want to show/hide a <div> with id="mydiv":

<input type="checkbox" name="addons[2]" onclick="document.getElementById('mydiv').style.display = (this.checked ? 'block' : 'none');" />
Asaph
Thanks, this is a great example - but unfortunately I can't modify the checkbox's code, it's autogenerated. I gave you a +1 though.
Arcdigital
A: 

Thanks for the help, here is the final code I used

$("input[name='customfield[4]']").click(

function()

{

    if ($("input[name='customfield[4]']").is(":checked"))

        $("#addons").hide();

    else

        $("#addons").show();


}
);
Arcdigital