Hi gaagaagui,
I need a sample application to understand why you get two pop-ups, as there must be some more details missing that are relevant for this scenario. Adding a single textbox with just this code on TextChanged only produces one popup when tested here on IE9.
You should realize though, that setting the Validator on TextChanged is too late for the current input and will only work for next text change on that textbox. The reaons for this is that the Validator is a client-side creature, so setting the Validator will require one roundtrip to the server for it to be effective client-side. You can easily test this with a blank form with a TextBox and your code in the TextChanged event handler. The first time you provide invalid input, no popup occurs, but the second time, it does.
Hope this explains,
Palli