7
votes

Validation de jQuery pour la matrice d'éléments d'entrée

Je dois valider une gamme d'éléments de texte d'entrée (kilométrage): Par exemple: xxx pré>

Le script pour validation est comme ci-dessous - P>

$(document).ready(function(){

        $("#form1").validate({
            rules: {
                mileage: {
                    required: true

                         }
                },            
            submitHandler: function(form) {
                form.submit();
            }

        });       
    });


0 commentaires

4 Réponses :


3
votes

Vous devez faire boucle dans ces cas, comme ceci: xxx

.rules () n'affecte que la première correspondance, de sorte que vous avez besoin d'un .uite () sur là pour boucler et ajouter des règles à toutes les correspondances.


11 commentaires

@Nick cravraver. Merci j'ai essayé ce que vous avez suggéré, mais cela ne fonctionne toujours pas :(. Êtes-vous sûr que tout ce que j'ai besoin de faire ?? :(


@eddy - Yup c'est tout ce qui est nécessaire ... obtenez-vous des erreurs JavaScript dans votre console?


@Nick cravaver - pas une seule erreur. Pour une raison quelconque, le plugin continue à ne valider que le premier élément :(


@eddy - Avez-vous une page que je peux regarder? BTW une autre façon d'y aller, si vous voulez juste requis serait


@nick Salut Nick, dis vous quoi ... tu es mon préféré dans la totalité de la communauté. J'aime la façon dont vous vous sentez la responsabilité de la communauté. Je voulais juste dire vous êtes mon numéro un (rien de personnel)


@Nick Craver - Enfin, j'ai trouvé comment faire fonctionner le plugin correctement: web-funda.blogspot.com/2009/05/... . Maintenant, ça marche bien, j'espère que ça ne me cause aucun problème à l'avenir


@Pseudo. Je viens de remplacer la fonction nommée de la fonction et avec cela, j'ai rééquilibré le problème: D


@eddy - Vous peut faire cela, mais ce qui précède devrait fonctionner ... J'aurais donné un exemple de jsfiddle si ils n'auraient pas eu de problèmes pour le moment. Modification d'un plug-in non cassé est jamais la bonne approche imo.


@Pseudo. Merci, vous avez été vraiment utile et j'apprécierais vraiment si vous pouvez donner cet exemple


@eddy - Je suis corrigé, car 1,6 cela ne fonctionne plus ... curieux que l'auteur a choisi de supporter uniquement les cases à cocher et les radiobuttons pour les attributs partagés Nom , pas sûr de ce que le processus de pensée était là, car cela est HTML valide.


@ Nick-pourriez-vous s'il vous plaît, donnez-moi une main ici: Stackoverflow.com/questions/4528399/... : '(



8
votes

dans jquery.validate.js, nous pouvons trouver une fonction nom de contrôle nommée, nous devons la modifier comme ci-dessous:

checkForm: function() {
                this.prepareForm();
                for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
                    if (this.findByName( elements[i].name ).length != undefined && this.findByName( elements[i].name ).length > 1) {
                        for (var cnt = 0; cnt < this.findByName( elements[i].name ).length; cnt++) {
                            this.check( this.findByName( elements[i].name )[cnt] );
                        }
                        } else {
                    this.check( elements[i] );
                }
                }
            return this.valid();
    }


1 commentaires

Excellent en effet. Mais j'ai constaté que cette fonction ne prend pas en compte la propriété "ignorer". Je viens de raffiner la fonction dans ma réponse. J'espère que cela t'aides.



4
votes

basé sur eddy Réponse, cette fonction prend le compte également le ignore Code> Réglage.

        checkForm: function() {
            this.prepareForm();
            for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
                var checkingElements = this.findByName( elements[i].name ).not(this.settings.ignore);
                if (checkingElements.length !== undefined && checkingElements.length > 1) {
                    for (var cnt = 0; cnt < checkingElements.length; cnt++) {
                        this.check( checkingElements[cnt] );
                    }
                } else {
                    this.check( elements[i] );
                }
            }
            return this.valid();
        },


2 commentaires

Je préfère ne pas manipuler le code source du plugin manuellement, mais plutôt mon fichier à chaud personnalisé dans un fichier .js séparé, que j'inclus sur la page après JQuery.validate.js. Y a-t-il une façon de faire avec la méthode de la stratégie de contrôle dans l'extension?


J'ai fourc le projet sur Github et j'ai fait une demande de traction. J'espère donc que vous trouverez cette mise à jour directement dans une nouvelle version de jquery.validate.js



0
votes

Utilisation de jQuery Validate 1.19.1 et modifier le fichier jquery.validate.js sur la ligne 465, remplacer par cette fonction devrait être bien. XXX

J'espère être utile;) < / p>


0 commentaires