Hmm, eForm isn’t particularly suited to javascript generated form elements. The whole purpose of the inbuilt validation is to make forms as easy and secure as possible. Unfortunately this pre-packaged functionality works against you In your case
Having said that,....
Usually the parser ’reads’ the option tags for select fields and sets the validation accordingly. However when you set a custom validation rule the custom validation should take precedence, so in principal what you did with the #EVAL return true; should work. Can you set &DEBUG=`1` and copy the debug messages here? When you submit the form it should printout each form field with the validation rule and values applied. I’d like to see if the custom rule is ignored (which would be a bug I guess).
Do you know what the possible values would be in advance? i.e. Could you use a validation rule like #LIST value1,value2,value x... ? If so, give that a try.
As far as checkboxes and radio buttons are concerned there is no way at the moment to do the same. The parser will always compile a list of valid values from the from template. Something to look at in the future....