开发者

Get a Event from asp.net's validators to jquery on status change

开发者 https://www.devze.com 2023-01-08 00:13 出处:网络
i would like to h开发者_StackOverflowave an event fired in jquery, if the validators of my page change their states.

i would like to h开发者_StackOverflowave an event fired in jquery, if the validators of my page change their states.

This is my usecase:

  1. In an Adressform the Validators all are hidden.
  2. If i submit the form, the get displayed.
  3. Now i want to fire a jQuery function, which renders all rows (not the inputfields, but their parents) with a red border (means add a css class)
  4. if i now change the field and the validator hides i also want to hide the border around the input's parent

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


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.


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.


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!

0

精彩评论

暂无评论...
验证码 换一张
取 消