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