Philip Loyer
Philip Loyer

Reputation: 768

How to get drop down list value per selected row?

I have a table that looks something like so

<table id="grid" class="table table-bordered table-hover table-inline">
    <thead>
        <tr>
            <th>Id</th>
            <th>Dropdown List</th>
            <th><input id="selectAll" type="checkbox" /></th>
        </tr>
    </thead>
    <tbody data-bind="foreach: stuff
        <tr>
            <td data-bind="text: someId"></td>
            <td>
                <select class="input-medium" data-bind="options: someStuff, optionsText:'DisplayName', optionsValue:'StandardCode'"></select>                           
            </td>
            <td>
                <input type="checkbox" data-bind="value: someId"/>
            </td>
        </tr>
    </tbody>
</table>

and then im my javascript I am iterating through the selected rows like this

$('grid input[type="checkbox"]:checked').each(function () {

    var someSelectedId= $(this).val();

    var dropDownlistValue= ??       
});

I am using knockout to bind my data to the table and the drop down.

When i am iterating through the rows how do i get the selected value in the drop down list for each row as i am iterating through them? For the life of me i cant seem to figure it out. Thanks!

Upvotes: 0

Views: 1541

Answers (2)

Fred
Fred

Reputation: 1404

Or...

$(this).closest("tr").find("select.input-medium").val();

A.V's method is probably faster, but going to the TR allows more flexibility, as it'll find the select no matter where in the row it is.

Upvotes: 2

Anujith
Anujith

Reputation: 9370

Use:

var dropDownlistValue = $(this).parent().prev().find('select.input-medium').val();

Upvotes: 2

Related Questions