Step 1) read this
Step 2) goto your aspnet_client folder, open any version of WebUIValidation.js, and search for “function ValidatorHookupControl(control, val) {“ ( linked for your pleasure )
Step 3) Notice that I have no qualms about not protecting the guilty.
I'm fairly certain the original "abuse" script that Eric is talking about comes from the asp.net validation script library. At least, that's the first time I saw something of that nature. Having to solve a similar problem myself while building one of my very first server controls, I figured that since (A) I had essentially zero jscript knowledge at the time, and (B) “If the asp.net team does it that way, then it's good”, so I copied the technique for ConfirmedButtons.
I've since found a way of multicasting events that I like much better.