33 votes

jquery validation sans FORM

Comment valider un tas de champs qui ne sont pas entourés par une balise FORM à l'aide de jquery validate?

6voto

Kevin Nielsen Points 3546

Je sais que j'ai manqué la fête ici, mais je suis tombé sur cette question récemment, et a constaté que la façon la plus simple d'accomplir ce fut à l'aide de jQuery d' enrouler et de dérouler des méthodes dans le bouton "soumettre" onclick du gestionnaire. Ces méthodes, il est facile de créer dynamiquement et de détruire la balise form jQuery valider l'extension a besoin pour fonctionner.

Par exemple,

jQuery( '#my_submit_button' ).on( 'click', function()
    {
        jQuery( '#my_container' ).wrap( '<form id="temp_form_id" />' );
        var isValid = jQuery( '#temp_form_id' ).valid();
        jQuery( '#my_container' ).unwrap();
        if ( isValid )
        {
            //  Do your thing.
        }
    } );

C'est seulement un peu de travail supplémentaire et ne nécessite aucune modification de balisage existant-mais il est encore aggravante.

5voto

Vipresh Points 359

Vous pouvez le faire avec le plugin jQuery Validity, je l'utilise dans mon application MVC. Jetez un coup d'œil au lien ci-dessous, bien que UsingValidityWithAjax soit un peu abusif, vous pouvez l'utiliser dans votre scénario.

http://validity.thatscaptaintoyou.com/Demos/index.htm#UsingValidityWithAjax

http://plugins.jquery.com/project/validity

2voto

Shaun F Points 1049

Vous ne serez pas en mesure d'obtenir les mêmes effets avec jquery valider si vous n'avez pas une balise de formulaire.

Vous pouvez tenter quelque chose comme ce qui suit


fonction testValidationNoForm() {
 var nameValue = jQuery("#cname");
 var isValid = $("<form action=" name=" "><input name= "name" class= "requis" minlength='2' value='" + nameValue.val() + "'/></form>").valide();
 alert('isValid =' + isValid);
}

Alors là, vous êtes en train de construire le formulaire à la volée et d'obtenir le message valide.

0voto

Alexandra Points 1189

D'accord avec @Shaun F, vous devez avoir votre champs clos par l' <form> balise. La partie la plus cool sur le cadre, toutefois, est qu'il vous permet de contourner l'ensemble de l' form action d'affaires et de définir votre propre submitHandler. En fait, il est conseillé façon de faire de l'ajax soumet après validation (l'emphase est mienne):

submitHandler [...] Rappel pour la manipulation du réel soumettre lorsque le formulaire est valide. Obtient la forme comme seul argument. Remplace la valeur par défaut soumettre. Le bon endroit pour soumettre un formulaire via Ajax après avoir validé.

Plus d'infos ici: http://docs.jquery.com/Plugins/Validation/validate#toptions

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X