MVC Twitter Bootstrap manejo de errores discreto

He estado tratando de conseguir un manejo discreto de errores de MVC Jquery trabajando con el programa de arranque de Twitter desde hace algún tiempo. Llegó al punto en el que voy a editar jquery.validate o hacer algunos cortes y barras en document.ready.

Para lograr que el manejo de errores no intrusivo funcione con Bootstrap y MVC, necesito que sea la clase de 'error' que se agregó a la clase 'control-group'. Además de eso, la clase de 'error' se agrega a la entrada.

Me preguntaba si alguien en la comunidad ya ha encontrado una solución.

Por ejemplo

El marcado típico de bootstrap sería como ...

<code><div class="control-group">
    <label for="Username">Username</label>
    <div class="controls">
        <input data-val="true" data-val-required="Username is required" id="Username" name="Username" type="text" value="" />
        <span class="field-validation-valid" data-valmsg-for="Username" data-valmsg-replace="true"></span>
    </div>
</div>
</code>

Lo que debería suceder, en el desenfoque cuando jquery.validate incendios discretos ... cambiaría a lo siguiente

<code><div class="control-group error">
    <label for="Username">Username</label>
    <div class="controls">
        <input data-val="true" data-val-required="Username is required" id="Username" name="Username" type="text" value="" />
        <span class="field-validation-valid help-inline" data-valmsg-for="Username" data-valmsg-replace="true"></span>
    </div>
</div>
</code>

Para que esto funcione en devolución / envío, puede hacer lo siguiente ...

<code>//twitter bootstrap on post
$(function () {
    $('span.field-validation-valid, span.field-validation-error').each(function () {
        $(this).addClass('help-inline');
    });

    $('form').submit(function () {
        if ($(this).valid()) {
            $(this).find('div.control-group').each(function () {
                if ($(this).find('span.field-validation-error').length == 0) {
                    $(this).removeClass('error');
                }
            });
        }
        else {
            $(this).find('div.control-group').each(function () {
                if ($(this).find('span.field-validation-error').length > 0) {
                    $(this).addClass('error');
                }
            });
        }
    });


    $('form').each(function () {
        $(this).find('div.control-group').each(function () {
            if ($(this).find('span.field-validation-error').length > 0) {
                $(this).addClass('error');
            }
        });
    });

});
</code>

Sin embargo, en el desenfoque no funcionará como cabría esperar. No quiero editar los archivos bootstrap CSS o Jquery.validate, ya que probablemente implementarán una actualización en algún momento.

¿Crearé un delegado o un enlace a las funciones de jQuery y trabajaré desde allí? Este es un código JS profundo con el que no estoy familiarizado, pero que podría con el tiempo disparar a mi manera.

¿Alguien sabe dónde comencé con este problema, o sabe dónde se implementó / discutió?

Respuestas a la pregunta(7)

Su respuesta a la pregunta