web-dev-qa-db-fra.com

Validation de formulaire JS/JQuery dans les menus d'administration principaux

Je construis un plugin pour gérer les informations de cours et j'ai du mal à mettre la validation de formulaire sur les nouvelles boîtes de méta que j'ai ajoutées.

Quelqu'un a-t-il un bon moyen de mettre la validation JS/JQuery dans les menus de l'administrateur?

Merci

2
danbrown

Ok je l'ai au travail. Je n'ai rien trouvé à ce sujet sur le Web, à l'exception de la page d'un gars, ce qui a fonctionné, mais n'a pas été aussi efficace que je l'aurais souhaité. J'ai fait des recherches sur la manière dont les principaux plugins le font et je n'ai trouvé que quelques méthodes JS personnalisées et peu intuitives.

Quoi qu'il en soit, j'ai réussi à utiliser une bibliothèque JQuery à la fin. Je mets les scripts dans le pied de page car je devais cibler une page spécifique:

add_action('admin_footer', 'cpd_validator', 999);

function cpd_validator(){

    global $post;
    if($post->post_type == 'courses' || $post->post_type == 'presentations'){

        // page specific validation here...
        wp_enqueue_script('form_validation', plugins_url('form-validation/jquery.validate.min.js', __FILE__));
        wp_enqueue_script('calibrate', plugins_url('form-validation/calibrate.js', __FILE__));
    }
}

Le jquery.validate.min.js est ici . Le script de calibrage ressemble à quelque chose comme:

jQuery(function(){

    // Initialise the validator
jQuery('#post').validate();

    // Add the rules to the classname hooks
jQuery.validator.addClassRules({
    max_100: {
         maxlength: 100
    },
    max_4000: {
        maxlength: 4000
    },
    number: {
        number: true
    }

});

Et puis j'ai ajouté les classes que j'avais définies aux éléments de formulaire réels dans les méta-boîtes:

<label for="subject">Subject: </label>
<input type="text" class="max_100" value="<?php echo $subject; ?>" name="subject" id="subject" >

Et ça a marché :)

4
danbrown