User1275668648 posted
Apparently, this behavior is inherent in the control.
http://www.velocityreviews.com/forums/t110208-requiredfieldvalidator-allows-blank-values-when-initialvalue-is-set.html
I also found it's quite easy to write my own client-side validator, using the CustomValidator-
1 <script type="text/javascript">
2 function Validate(source, arguments)
3 {
4 arguments.IsValid =
5 (
6 arguments.Value != ''
8 && arguments.Value!= '<%=TypingPrompt %>'
10 );
11 }
12 </script>
13
Unfortunately, multiple instances on the same page seem to produce validation interference. i think they don't call their own validation script reliably, maybe due to their order of appearance in the rendered page?
Fortunately, the TypingPrompt property is the same value for each of these controls on the page, so I lucked out.