377 votes

jQuery Validate Plugin - Comment créer une règle personnalisée simple ?

Comment créer une règle simple et personnalisée à l'aide du plugin jQuery Validate (à l'aide de la fonction addMethod ) qui n'utilise pas de regex ?

Par exemple, quelle fonction permettrait de créer une règle qui n'est validée que si au moins une case d'un groupe de cases à cocher est cochée ?

44 votes

95 votes positifs, je suppose que cela signifie bassistance.de/jquery-plugins/jquery-plugin-validation la documentation n'est peut-être pas claire :P

0 votes

Je ne sais pas si vous êtes toujours en train de chercher (4 ans plus tard) mais ceci pourrait vous aider learn.jquery.com/plugins/

19voto

Bogdan Mates Points 460

Vous pouvez ajouter une règle personnalisée comme ceci :

$.validator.addMethod(
    'booleanRequired',
    function (value, element, requiredValue) {
        return value === requiredValue;
    },
    'Please check your input.'
);

Et l'ajouter comme une règle comme ceci :

PhoneToggle: {
    booleanRequired: 'on'
}

2voto

Siwei Shen Points 5814

Dans ce cas : formulaire d'inscription de l'utilisateur, l'utilisateur doit choisir un nom d'utilisateur qui n'est pas pris.

Cela signifie que nous devons créer une règle de validation personnalisée, qui enverra une requête http asynchrone au serveur distant.

  1. créer un élément d'entrée dans votre html :

    <input name="user_name" type="text" >

  2. déclarer les règles de validation de votre formulaire :

    $("form").validate({ rules: { 'user_name': { // here jquery validate will start a GET request, to // /interface/users/is_username_valid?user_name=<input_value> // the response should be "raw text", with content "true" or "false" only remote: '/interface/users/is_username_valid' }, },

  3. le code à distance devrait être comme :

    class Interface::UsersController < ActionController::Base def is_username_valid render :text => !User.exists?(:user_name => params[:user_name]) end end

-1voto

Devang Hire Points 52

Étape 1 Inclus le cdn comme

     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

     <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>

Étape 2 Code Like

  $(document).ready(function(){
        $("#submit").click(function () {
              $('#myform').validate({ // initialize the plugin
                rules: {
                    id: {
                        required: true,
                        email: true
                    },
                    password: {
                        required: true,
                        minlength: 1
                    }
                },
                messages: {
                    id: {
                        required: "Enter Email Id"

                    },
                    password: {
                        required: "Enter Email Password"

                    }
                },
                submitHandler: function (form) { // for demo
                    alert('valid form submitted'); // for demo
                    return false; // for demo
                }
            });
       }):
  });

-4voto

Shawn Rebeblo Points 31
########################
## In validation Rules #
########################
regemail: {
    required: true,
    email: true,
    remote: {
        url: "checkmail.php"
    }
},

#####################
## In message Rules #
#####################
regemail: {
    required: "Email is required",
    email: "Invalid Format",
    remote: ""
}

###########################
## Modify Jquery Validate #
###########################
#Search For:
var valid = response === true;
if ( valid ) {

#Change To:
var valid = response.data;
if ( !valid ) {
   valid = true;

#Search For
} else {
   var errors = {};

#Change To
} else {
   valid = false;
   var errors = {};

#Search For:
errors[element.id] = previous.message = response || validator.defaultMessage( element, "remote" );

#Change To:
errors[element.id] = response.data || validator.defaultMessage( element, "remote" );

#PHP Returns JSON 
return ($m == $m) ? false : 'Email has already been registered'

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