Closed phenix-factory closed 4 years ago
Oui, ça vient du fait que je n'ai pas de système générique pour trouver la valeur d'une saisie en js. En attendant de trouver une solution pour ça (si c'est possible), il est possible d'ajouter ses propres fonctions.
Voici par exemple comment j'ajoute une fonction pour une saisie custom checkbox_mots_avec_auteurs
$('.formulaire_filtrer_journalistes').formulaireAjax({
blocsAjax: ['listeJournalistes'],
/* pas d'autosubmit pour les mobiles et tablettes */
autoSubmit: (window.innerWidth > 850),
/* Il faut expliquer au plugin comment calculer la valeur de nos
saisies custom */
calculValeurSaisie: {
checkbox_mots_avec_auteurs: function (champ) {
var inputs = $(champ).find('input'),
valeur = [];
inputs.each(function () {
if ($(this).attr('checked') === 'checked') {
valeur.push($(this).attr('value'));
}
});
return valeur;
}
}
});
Ces fonctions de calcul reçoivent en argument la saisie (le <li>
ou la <div>
…), et doivent retourner la valeur de la saisie (ici un tableau).
Le nerf de la guerre est la fonction valeurs
(https://github.com/bystrano/formulaire_ajax/blob/master/javascripts/jquery.formulaireAjax.js#L178) qui calcule les valeurs d'un formulaire.
Si tu trouves un remplacement générique qui passe les tests (spip.php?page=tests_js/formulaire_ajax sur un site avec le plugin), je merge sans réfléchir et t'offre un éclair au chocolat ! :-)
Hello,
Ils ne fonctionne pas avec la saisie "mot". En faite il n'est pas du tout générique et ne fonctionne que pour les saisies qui ont été déclarée.
Je pense qu'une meilleurs méthode serai de faire un $("input, select, textarea") et ensuite d'ajouter des filtre :selected et :checked en fonction de this.type.