Поиск элемента управления, связанного с валидатором ASP.NET, с помощью JQUERY или простого Javascript

У меня есть страница с несколькими текстовыми полями и соответствующими валидаторами (валидатор ASP.NET).

И ясно, что я могу проверить каждый из этих валидаторов из javascript, вызвав функцию

Page_ClientValidate("myvalidators") 

где myvalidators - имя моей группы валидаторов

Точно так же я могу проверить конкретный валидатор, используя

ValidatorEnable(Page_Validators[0]);

который проверяет только этот конкретный валидатор

Но мой вопрос в том, как мне найти или выяснить элемент управления (текстовое поле), который связан с этим конкретным валидатором.

Это означает функцию, которая может возвращать все элементы управления с отказавшим валидатором.

Или, точнее, функция должна возвращать объект коллекции элементов управления, где не удалось выполнить проверку валидатора.

Добавлено дополнительное описание

Мой сценарий состоит в том, чтобы выделить родительский div текстового поля, в котором произошел сбой валидатора. Поэтому, если я получу объект управления texbox или массивы элементов управления, я могу просто взять каждый из его родительских div и выделить его.


person Sandeep Thomas    schedule 18.02.2014    source источник
comment
Отображение сгенерированного html упростит понимание   -  person Adil    schedule 18.02.2014
comment
@ Адил Это требует? Потому что я указал функцию, которую использовал для вызова валидатора.   -  person Sandeep Thomas    schedule 18.02.2014


Ответы (1)


Массив Page_Validators возвращает те же метаданные, которые мы получаем в пользовательской функции проверки. Это означает, что вы можете получить связанный идентификатор элемента управления примерно так Page_Validators[0].controltovalidate.

 <script>
$(function () {
  // process all validators and their controls
  $.each(Page_Validators,function (i,v){ 
     if(v.controltovalidate) { 
        $("#"+v.controltovalidate); 
     } 
   });
});
</script>
person Michael    schedule 18.02.2014
comment
Извините .. Я думаю, вы неправильно поняли мой сценарий ... На самом деле мое требование: представьте, что мой идентификатор текстового поля - txt1, и с ним связан валидатор requirefield. Этот валидатор я могу назвать Page_Validators [0] Итак, мой вопрос: как мы можем получить этот объект txt1, используя эту ссылку Page_Validators [0]? Надеюсь, теперь все ясно - person Sandeep Thomas; 18.02.2014
comment
Попробуйте это $ (# + Page_Validators [0] .controltovalidate) - person Michael; 18.02.2014
comment
Это потрясающий друг ... Сработал как шарм ... Если вы замените это полученным ответом, я могу отметить его как правильный ответ ... - person Sandeep Thomas; 18.02.2014
comment
В порядке. Я заменил ответ - person Michael; 18.02.2014