Pregunta

Me pregunto si es posible tener el plugin de jQuery Validador validar elementos que aún no existen en el Reino cuando las reglas son inicialmente de configuración.

Llamar a los .rules ( "add", therules) método sólo se adhiere a las reglas elementos que existen actualmente en el Reino. Si tuviera que crear un poco. La validación no se dispara. ¿Alguna idea?

Página de inicio del validador que estoy utilizando: http://bassistance.de/ jquery-plugins / jquery-plugin-validación /

Los nuevos elementos se crean a través de http://ejohn.org/blog/javascript- micro-plantillas /

Básicamente hay una llamada Ajax y el servidor devuelve un montón de JSON (ajaj?), Este JSON se alimenta a través con motor de plantillas del Resig. Una plantilla de ejemplo se ve así:

<script type="text/html" id="ProductsTemplateEdit">
    <td>
        <input type="hidden" value="<#= item.ID #>" id="Edit.ID" name="Edit.ID" />
        <input type="text" value="<#= item.Price#>" id="Edit.Price" name="Edit.Price" />
    </td>
</script>

Los valores son, evidentemente, rellenan a través de la json que se pasa en.

También debería mencionar que estoy usando el marco xval validación, que básicamente genera automáticamente las reglas de jQuery validar para mí: http://blog.codeville.net/2009/01/10/xval-a-validation-framework-for-aspnet-mvc/

¿Fue útil?

Solución

Está bien, tratar dos. ¿Qué es la adición de sus elementos de forma dinámica? ¿No te basta con colocar los .rules ( "add",) para el mismo código?

Otros consejos

Hey no está seguro de si esto es un truco distantes pero funcionó para mí. Antes de esto, yo estaba haciendo una each () en el selector y en funcionamiento en el mismo problema que está teniendo con Ajaxed, elementos de nueva creación.

caso de paso del ratón en vivo parece haber hecho el truco, otorgado ur no estar loco con el CSS:

// >>> MSG/Comment form validator, now and forever...  
    $('form.streamForms').live('mouseover', function(){
        $(this).validate({
            rules: {
                text: "required"

            },
            messages: {
                text: " "
            }
        });    
    });

Espero que ayude!

Usted desee ver en la nueva eventos en vivo

Esta es la manera en que manejé esto. En primer lugar he creado mi objeto de validación.

    var myvalidations = {};
    myvalidation.registerform = function() { $("#registerform").validate({
            submitHandler: function(form) {
                $(form).ajaxSubmit(optionspersonal); 
                //submitReg();
            },
                    rules: {
                firstname: {
                     required: true,
                     minlength: 5,
                     maxlenght: 22
                },
                    messages: {
                             firstname: {
                                 required: "Tell us what to call you by.",
                     minlength: "Your username must consist of at least 5 characters"
                             }
                     }
             });
        }

Ahora, cada vez que cree su formulario asegúrese de que tiene un ID en ella o algo para hacer referencia a ella y simplemente llamar a su función correcta después de crearlo.

    //create my content
    $('.content').html('--fields etc--');
    //add validation
    myvalidation.registerform();

Cualquier otra sugerencia bienvenida; pero creo que, básicamente, este es el enfoque correcto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top