Каким-то образом валидатор что-то здесь сбивает с толку. Чтобы предотвратить поведение, есть разные способы:
1) Вы можете установить
EnableClientScript="false"
на валидаторе, что означает, что он проверяется на сервере.
Если это имеет нежелательные побочные эффекты (поскольку валидатор «перегружен» другими валидаторами клиента), вы можете сделать это
2) добавить эту функцию javascript / jquery на страницу:
function HideValidator() {
var validator = $('#<%= ContactMethodRequired.ClientID %>');
validator.hide();
}
и обработчик событий для ddl:
onchange="HideValidator();"