Now that each field offers an OnChange event, we want to use it. At least I do. Based on the selection or values in another field, I'm disabling fields all over the screen. But why disabling and not hide them?! It's not documented and therefore not supported, but it sometimes is needed. The code to hide a field is:
crmForm.all.name_c.style.visibility = 'hidden';
crmForm.all.name_d.style.visibility = 'hidden';
Ofcourse modify the name_c and name_d to the correct fieldname_c and fieldname_d.
Update: Thanks to Robert Amos for an even better way to hide the fields.