Mico
Mico

Reputation: 497

jQuery check a radio button on the next td radio button group

I have a table with radio buttons, on the first column, options are:

On the second column, options are:

Now what I want to do is, when the user clicked 'No Stock' on the first column, the 'No Stock' radio option on the second column should be checked.

Here's what I'm doing:

HTML:

<table border='1'>

    <tr>
        <td class="valign_top" style="text-align:left;">
            <div class="radio_field">
                <input type="radio" class="stock_avail" id="93_stock_avail_0" name="93_stock_avail" value="0" checked=""> ---
            </div>

            <div class="radio_field">
                <input type="radio" class="stock_avail" id="93_stock_avail_No" name="93_stock_avail" value="No"> No Stock
            </div>

            <div class="radio_field">
                <input type="radio" class="stock_avail" id="93_stock_avail_Yes" name="93_stock_avail" value="Yes"> With Stock
            </div>
        </td>

        <td class="sa_sw_td valign_top" style="text-align:left;">                    
            <div class="radio_field">
                <input type="radio" class="sa_sw" name="93_sa_sw" id="93_sa_sw_0" value="0" checked=""> ---
            </div>

            <div class="radio_field">
                <input type="radio" class="sa_sw" name="93_sa_sw" id="93_sa_sw_1" value="1"> No Stock
            </div>

            <div class="radio_field">
                <input type="radio" class="sa_sw" name="93_sa_sw" id="93_sa_sw_2" value="2"> Low
            </div>

            <div class="radio_field">
                <input type="radio" class="sa_sw" name="93_sa_sw" id="93_sa_sw_3" value="3"> Medium
            </div>

            <div class="radio_field">
                <input type="radio" class="sa_sw" name="93_sa_sw" id="93_sa_sw_4" value="4"> High
            </div>
        </td>
    </tr>


    <tr>
        <td class="valign_top" style="text-align:left;">
            <div class="radio_field">
                <input type="radio" class="stock_avail" id="94_stock_avail_0" name="94_stock_avail" value="0" checked=""> ---
            </div>

            <div class="radio_field">
                <input type="radio" class="stock_avail" id="94_stock_avail_No" name="94_stock_avail" value="No"> No Stock
            </div>

            <div class="radio_field">
                <input type="radio" class="stock_avail" id="94_stock_avail_Yes" name="94_stock_avail" value="Yes"> With Stock
            </div>
        </td>

        <td class="sa_sw_td valign_top" style="text-align:left;">                    
            <div class="radio_field">
                <input type="radio" class="sa_sw" name="94_sa_sw" id="94_sa_sw_0" value="0" checked=""> ---
            </div>

            <div class="radio_field">
                <input type="radio" class="sa_sw" name="94_sa_sw" id="94_sa_sw_1" value="1"> No Stock
            </div>

            <div class="radio_field">
                <input type="radio" class="sa_sw" name="94_sa_sw" id="94_sa_sw_2" value="2"> Low
            </div>

            <div class="radio_field">
                <input type="radio" class="sa_sw" name="94_sa_sw" id="94_sa_sw_3" value="3"> Medium
            </div>

            <div class="radio_field">
                <input type="radio" class="sa_sw" name="94_sa_sw" id="94_sa_sw_4" value="4"> High
            </div>
        </td>
    </tr>

</table>​

JavaScript:

$(document).ready(function(){
    $('.stock_avail').click(function(){

        var value = $(this).val();
        console.log("value: " + value);

        if(value=='No'){
            $(this).next('td').find('radio').val(2);
        }

    });
});​

This might help: http://jsfiddle.net/E6mhM/.

Any ideas how to do that? TIA!!!

Upvotes: 0

Views: 2192

Answers (2)

coolguy
coolguy

Reputation: 7954

$(document).ready(function(){
    $('.stock_avail').click(function(){
        if($(this).val()=='No'){
            $(this).parent().parent().next().find(':radio:eq(1)').attr('checked','checked');
           //assuming No stock will be always a second radio option 
        }
    });
});

Upvotes: 0

user1726343
user1726343

Reputation:

$(document).ready(function(){
    $('.stock_avail').click(function(){

        var value = $(this).val();
        console.log("value: " + value);

        if(value=='No'){
            $(this).closest("td").next().find("input[value=1]").attr("checked",true);
        }

    });
});​

Demo: http://jsfiddle.net/E6mhM/4/

Upvotes: 1

Related Questions