Question

Je me demande s'il est possible d'avoir le plugin jQuery Validator valider des éléments qui n'existent pas encore dans le dom lorsque les règles sont configurés initialement.

Appel de la méthode .rules ( « ajouter », therules) attache uniquement les règles aux éléments qui existent actuellement dans le Royaume. Si je devais créer. La validation ne se déclenche pas. Toute pensée?

Page d'accueil du validateur J'utilise: http://bassistance.de/ jquery-plugins / jquery-plugin-validation /

De nouveaux éléments sont créés via http://ejohn.org/blog/javascript- micro-texturation /

En fait, il y a un appel ajax et le serveur retourne un tas de JSON (ajaj?), Ce JSON est alimenté par avec le moteur de templating de la Resig. Un exemple de modèle ressemble à ceci:

<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>

Les valeurs sont manifestement remplies par l'intermédiaire du json qui est passé à.

Je dois aussi mentionner que j'utilise le cadre de la validation xval, qui génère essentiellement automatiquement les règles validate jquery pour moi: http://blog.codeville.net/2009/01/10/xval-a-validation-framework-for-aspnet-mvc/

Était-ce utile?

La solution

Ok, essayez deux. Qu'est-ce que l'ajout de vos éléments dynamiquement? Tu ne peux pas juste placer les .rules ( « ajouter »,) au même code?

Autres conseils

Hey ne sais pas si cela est une bidouille impoli, mais cela a fonctionné pour moi. Avant cela, je faisais un each () sur le sélecteur et en cours d'exécution dans le même problème que vous rencontrez avec les éléments nouvellement créés, Ajaxed.

événement en direct sur Mouseover semble avoir fait le tour, accordé ur ne pas être fou avec votre code CSS:

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

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

it helps!

Vous voulez regarder dans le nouveau Live Events

Voici comment je me suis occupé ce. D'abord, je créé mon objet de validation.

    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"
                             }
                     }
             });
        }

Maintenant, chaque fois que vous créez votre formulaire assurez-vous qu'il a une carte d'identité sur elle ou plutôt de référencer et simplement appeler votre fonction juste après sa création.

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

Toutes les autres suggestions bienvenues; mais je pense que fondamentalement c'est la bonne approche.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top