Reputation: 915
i would like to have an event fired in jquery, if the validators of my page change their states.
This is my usecase:
i don't want to have a timer checking every 100ms the displayed validators (which would work perfectly), but i want to listen only to the show/hide events of the validators
any ideas, how i can add a listener to the change events of a validator?
regards Christoph
Upvotes: 2
Views: 1016
Reputation: 422
Sorry for answering this old question, but I made a blog post about modifying the default javacscript evaluation function of the ASP.NET validators. Basically it comes down to this:
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;
}
Next, in the 'evaluateField' function, write the code to set the 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;
}
In the setError and clearError functions you can use jquery to find the parent row and apply css to it. Hope this helps!
Upvotes: 0
Reputation: 21117
Here is how you can call .NET validators from JavaScript:
Manually calling ASP.NET Validation with JavaScript
You could integrate the above with jQuery events or jQuery Validation.
NOTE: This solution is if you are tied to .NET Validators, otherwise just use jQuery Validation as Dave mentioned.
Upvotes: 1
Reputation: 34810
Have you looked into the standard jQuery validator plugin? I'm pretty sure its validators have events you can hook into in just the way you describe.
Upvotes: 0