Hola:
 
Una opción es chequear el contenido con el envío (onsubmit en el form) 
Poniéndole al select un id para diferenciarlo (también podría usarse el array de nombres...)
<select id="selector" name="sel" > 
y el form:
<form onsubmit="with(document.getElementById('selector')  ) {disabled = (value == '')" ...> 
Otra cosa (yo lo hago a veces:
<select name="sel" id="sel1" >
...
<input type="text" name="sel" id="sel2" disabled /> 
<input type="checkbox" onclick="document.getElementById('sel1').disabled = this.checked; document.getElementById('sel1').disabled = !this.checked" /> 
La idea es un checkbox sin nombre que alterne la habilitación de ambos elementos con mismo nombre. 
Saludos