Copia, incolla e modifica secondo le tue esigenze

codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>

<style>
.os_setcb {
    display: none;
}
</style>

<script>
function hideByStartId(els, c) {
    var e = document.getElementsByTagName(els)
    for (var i=0; i<e.length; i++)
        if (c.test(e[i].id)) e[i].style.display = 'none';
}

function $id(id) {
    return (document.getElementById)? document.getElementById(id) : document.all[id];
}

function displayCheckbox(s) {
    var id = s.id;
    var value = s.value;
    var startid = ['^', id , '_'].join('');
    var startid_re = new RegExp (startid, 'gi');
    hideByStartId('div', startid_re)
    
    if (value != '') {
        id_cbgroup = [id, '_', value].join('');
        if ($id(id_cbgroup)) {
            $id(id_cbgroup).style.display = 'block';
        } 
    }
    
    
}

</script>
</head>

<body>
    <form>
        <fieldset>
        <select name="os" id="os" onchange="displayCheckbox(this)">
            <option value="">Nessuna scelta</option>
            <option value="linux">linux</option>
            <option value="windows">windows</option>
        </select>  
        
        
        <div id="os_linux" class="os_setcb">
            <input type="checkbox" name="distro" value="debian" />Debian
            <input type="checkbox" name="distro" value="ubuntu" />Ubuntu
            <input type="checkbox" name="distro" value="Suse" />Suse
        </div>
        <div id="os_windows" class="os_setcb">
            <input type="checkbox" name="ver" value="2000" />2000
            <input type="checkbox" name="ver" value="XP" />XP
            <input type="checkbox" name="ver" value="Vista" />Vista
        </div>
        
        </fieldset>
    </form>
</body>
</html>