web-dev-qa-db-fra.com

Plug-in de validation jQuery - Validation des entrées masquées et non visibles?

Comment validerais-je les entrées masquées et les entrées de texte non visibles avec le plug-in jQuery Form Validation? Le problème est que j'utilise le plug-in de suggestion automatique, qui génère une entrée masquée pour les éléments sélectionnés:

<input id="hiddenInput" type="hidden" name="something" value="1" />

J'ai 2 entrées comme celle-ci (les deux n'autorisent qu'un seul article), que je veux valider et afficher l'erreur dans parent <td>. C’est ce que j’ai eu jusqu’à présent, mais il n’affiche pas l’erreur et ne soumet pas de formulaire, si la valeur est en fait un nombre.

$("#form1").validate({
        rules: {
            something: {
                number:true,
                min:1,
                required:true
            }
        }
        })
58
ItsGreg

Pour autoriser la validation des éléments cachés, remplacez ignore et définissez-le sur chaîne vide:

$("#form1").validate({
    ignore: "",
    rules: {
        something: {
            number:true,
            min:1,
            required:true
        }
    }
});
115
Josh

Vous pouvez utiliser l'option ignore comme ceci:

$("#form1").validate({
    ignore: "input[type='text']:hidden",
    rules: {
        something: {
            number:true,
            min:1,
            required:true
        }
    }
});

La valeur par défaut de l'option ignore est :hidden qui ignore tous les champs cachés et non visibles (display: none etc.)

26
Emre Erkan

Si les autres réponses ne fonctionnent pas pour vous, essayez plutôt ceci. Il supprime tout ignore pour le formulaire, donc il validerait tout, y compris les champs cachés:

$.data($('form')[0], 'validator').settings.ignore = "";

Pour restaurer les paramètres pour ignorer les champs cachés, utilisez quelque chose comme ceci:

$.data($('form')[0], 'validator').settings.ignore = "input[type='text']:hidden";

Vous pouvez également utiliser le code ci-dessus pour relire la valeur actuelle.

14
CMcClymont

Une autre façon de valider les entrées cachées est la suivante:

$("#form1").validate({
        ignore: "not:hidden",
        rules: {
            something: {
                number:true,
                min:1,
                required:true
            }
        }
});
5
lopradi