Populate fields when a checkbox is clicked on a form
You could do this with hook_form_alter and add a state to the field that needs to be hidden.

$form["first_name"] = array(
    "#states" =&gt; array(
        "invisible" =&gt; array(
            ":input[name='bring_parter']" =&gt; array(
                "checked" =&gt; FALSE,
            )
        )
    ),
);


What this does is hides the "first_name" unless "bring_partner" is checked. More info here