tags:

views:

109

answers:

3

Hi,

I have really basic question. How can I get form id by input element id.

<form id="my_form">
    <fieldset>
        <!--some <div>'s-->
            <input id="my_input"></div>
        <!--some <div>'s end-->
    </fieldset>
</form>

Now if I have

var form_input = $('#my_input');

How can I get id "my_form"?

Thank you.

+4  A: 

Use closest. It searches up the ancestors* of an element to find the first (closest) match.

$('#my_input').closest('form').attr('id');

*Note: closest() searches upwards starting with the current element, therefore it can match the current element.

nickf
+2  A: 

The simplest method is to use closest():

var id = $('#my_input').closest('form').attr('id');
cletus
+1  A: 

You don't even need jQuery for this. Every form element has a .form attribute you can use to directly access the form object without needing jQuery's iterative search:

$('#my_input').get(0).form.id
Gareth