J'essaie de valider un formulaire sur ma méta-boîte personnalisée, et je me souviens avoir lu quelque part une fonction javascript pour désactiver/activer le bouton Publier, à l'exception du fait que je ne la trouve pas.
Comment puis-je soit
a) activer/désactiver le bouton de publication ou,
b) lorsque vous cliquez sur Publier, interceptez-le et empêchez la mise à jour et avertissez l'utilisateur, mais de manière à pouvoir le mettre à jour ultérieurement
J'ai essayé un simple gestionnaire de clics avec e.preventDefault () et e.stopPropagation, mais l'icône "swily" apparaît et le bouton reste désactivé car il ne finit jamais
Merci
Plutôt que d'essayer d'interférer avec le fonctionnement du bouton et d'effectuer la validation dans jQuery ou javascript, il est plus facile d'accrocher l'action save_post
et d'effectuer ma validation en php (en vérifiant si certains post_meta existent ou sont corrects), si les choses ne fonctionnent pas out, vous pouvez redéfinir le statut de la publication sur "en attente", ce qui a pour effet de remplacer le bouton Publier. La page se charge simplement de sauvegarder (après avoir été enregistrée), mais ils doivent corriger leurs erreurs avant de pouvoir "publier".
J'utilise le validateur de jQuery Tools
$("#publish").click(function(event){
//validating
var inputs = $(".TTWForm-container :input").validator();
//check if not valid stop loading ajax icons
if( ! inputs.data("validator").checkValidity()){
event.stopImmediatePropagation();
}
}
Ce code se déclenche une fois que le bouton Publier est cliqué, puis vérifie si le formulaire est valide ou non. Si ce n'est pas le cas, il arrête la propagation de tous les événements, ce qui affiche les icônes de chargement Ajax. Sinon, cela fonctionne sans problème.