2010-07-15 2 views
2

Я хотел бы иметь событие, запущенное в jquery, если валидаторы моей страницы меняют свои состояния.Получить событие от валидаторов asp.net для jquery при изменении статуса

Это мой UseCase:

  1. В Adressform валидаторы все скрыты.
  2. Если я отправлю форму, отобразите ее.
  3. Теперь я хочу запустить функцию jQuery, которая отображает все строки (а не поля ввода, но их родители) с красной рамкой (означает добавление класса css).
  4. , если я сейчас изменяю поле и проверяющий скрывает i также хочу скрыть границу вокруг родителя ввода

Я не хочу, чтобы таймер проверял каждые 100 мс отображаемых валидаторов (что будет работать отлично), но я хочу слушать только события show/hide от валидаторов

любые идеи, как я могу добавить слушателя к событиям изменения валидатора?

С уважением Christoph

ответ

1

Вот как вы можете позвонить .NET валидаторы из JavaScript:
Manually calling ASP.NET Validation with JavaScript

Вы можете интегрировать выше событий JQuery или jQuery Validation.

ПРИМЕЧАНИЕ. Это решение, если вы привязаны к .NET Validators, иначе просто используйте JQuery Validation, как упоминал Дэйв.

+0

, так как я хотел сохранить работу проверки asp.net, я использовал метод из вашей ссылки (добавьте функцию к кнопке click event, вызовите функцию Page_ClientValidate ans проверить валидаторы на странице) Благодарим вас за подсказку. – Christoph

0

Вы смотрели в стандартный jQuery validator plugin? Я уверен, что у его валидаторов есть события, в которые вы можете подключиться, так, как вы описываете.

+0

Мне нужно событие от валидаторов asp.net для jquery, а не в другом направлении. – Christoph

0

Извините за ответ на этот старый вопрос, но я сделал сообщение в блоге о modifying the default javacscript evaluation function of the ASP.NET validators. В основном это сводится к следующему:

for (var i = 0; i < window.Page_Validators.length; i++) { 
    // Create a new property and assign the original evaluation function to it 
    window.Page_Validators[i].baseEvaluationFunction = window.Page_Validators[i].evaluationfunction; 

    // Set our own validation function 
    window.Page_Validators[i].evaluationfunction = evaluateField; 
} 

Далее в функции «evaluateField», написать код, чтобы установить CSS.

function evaluateField (validator) { 
    // Run the original validation function 
    var isvalid = validator.baseEvaluationFunction(validator); 

    // Handle the result 
    if (isvalid) { 
     clearError(validator); 
    } else { 
     setError(validator); 
    } 

    // Return result 
    return isvalid; 
} 

В функциях setError и clearError вы можете использовать JQuery найти родительскую строку и применить CSS к нему. Надеюсь это поможет!

Смежные вопросы