SO - 19995535

HTML

Adott: 2 normál ágy + 2 pótágy
<br>
<br>Szabály:
<br> - A felnőtt, nyugdíjas, diák csak normál ágyon aludhat.
<br> - A gyermek bármin aludhat.
<br> - A diák azért csak 1, a gyermek azért csak 3 lehet, mert legalább 1 felnőttet kell választani!
<br>
<br>példák:
<br>- lehet 2 nyugdíjas + 2 gyermek, más nem
<br>- lehet 1 nyugdíjas + 1 diák + 1 v. 2 gyermek
<br>- 1 felnőtt + 1 diák + 1 v. 2 gyermek
<br>
<br>
<br>
<table width='100%'>
    <tr>
        <td width='25%'>felnőtt
            <br>nem pótágy
            <br>
            <select class='number' size='4'>
                <option selected>0</option>
                <option>1</option>
                <option>2</option>
            </select>
        </td>
        <td width='25%'>nyugdíjas
            <br>nem pótágy
            <br>
            <select class='number' size='4'>
                <option selected>0</option>
                <option>1</option>
                <option>2</option>
            </select>
        </td>
        <td width='25%'>gyermek
            <br>mindegy
            <br>
            <select class='number' size='4'>
                <option selected>0</option>
                <option>1</option>
                <option>2</option>
                <option>3</option>
            </select>
        </td>
        <td width='25%'>diák
            <br>nem pótágy
            <br>
            <select class='number' size='4'>
                <option selected>0</option>
                <option>1</option>
            </select>
        </td>
        <tr>
</table>

JavaScript

$(document).on("change", "select.number", function () {
    var sum = 4;
    var sum_number = 0;
    $("select.number option:selected").each(function () {
        sum_number += parseInt($(this).val(), 10);
    });
    $('select.number option').prop('disabled', false);
    if (sum_number > 0) {
        var diff = sum - sum_number;
        $('select.number').each(function () {
            var idx = parseInt($(this).val(), 10) + diff + 1;
            $(this).find('option').slice(idx).prop('disabled', true)
        })
    }
});