12
votes

JQuery - Case à cocher Tristatique

J'essaie de trouver un plugin à cocher Tri-State. Cependant, chaque plugin que je trouve repose sur une hiérarchie (comme une structure de dossier) d'éléments. J'ai juste une seule case à cocher que je veux faire une case à cocher à trois voies.

Est-ce que quelqu'un connaît-il d'un plugin JQuery qui fera cela? Je suis vraiment surpris que je ne trouvais pas un qui fonctionne sur http://plugins.jquerery.com/ .

Merci pour votre contribution.


5 commentaires

Quel est le troisième état, Filenotfound ?


Les trois états sont nuls, vrais et faux.


Peut-être Cette question donnera quelques indices


Sur une note latérale, vous devriez vraiment déterminer si les utilisateurs comprendront les trois États (en particulier depuis que cela n'est pas dans une hiérarchie). UX a quelques ressources à consulter: meilleur choix pour une valeur de trois états? < / a> et case à cocher Tri-State .


Depuis longtemps, les cases à cocher doivent avoir 3 états par défaut. Un exemple simple: wordpress.org/extend/themes/tag-filter C'est bien si vous pouviez laisser la page savoir que vous ne voulez absolument pas une caractéristique donnée? Dites que je veux seulement un site Web de largeur fixe. Je devrais pouvoir désactiver l'option: «largeur flexible». Les 3 états sont donc: 1. Ne vous souciez pas (pas de contrôle), 2. Oui s'il vous plaît (Vérifiez), 3. Non merci (Cross)


6 Réponses :




2
votes

Je suis tombé sur le même problème - j'en avais besoin de montrer: Activer / Désactiver / Ignorer

Basé sur les icônes disponibles dans JQuery Ui ( http://jqueryui.com/themeroller/ ) J'ai créé le code suivant (je sais que ce n'est pas un plugin, mais ce n'était pas nécessaire dans mon cas):

Le HTML J'utilise est: xxx

Le contrôle prend la matrice JSON dans des valeurs d'état de données pour autant d'états que vous souhaitez faire pivoter:

  • Valeur: la valeur qui sera entrée dans l'entrée
  • Classe: Classe CSS (ES) que la nouvelle span aura
  • Titre: un titre optionnel qui sera défini dans la portée créée

    Ça crée fondamentalement un ELEMENT ET CLICK> Met la mise à jour en cachant la liste de valeurs donnée .

    Je l'ai codé afin que cela permet même de changer à travers d'autres moyens (c'est-à-dire régler la valeur de l'entrée directement) et met à jour le "contrôle" lorsque la "entrée"). Modifier (); L'événement est déclenché.

    le code JQuery qui le gère: xxx

    La commande fait également partie de la bibliothèque de mon formulaire de contrôle sur https://github.com/corinis/jsform/wiki/controls .


0 commentaires

6
votes

Certaines de ces réponses sont un peu obsolètes depuis que JQuery refaite leur site de plugin. Les cases à cocher

"tristate" (indéterminé) sont construites dans JavaScript et il est facile de les définir dans cet état en définissant simplement une propriété sur eux. Plus d'informations: http://css-tricks.com/indeterminate-checkbox/feckbox/

$ ("# une certaine case"). Prop ("indéterminé", vrai);

Il y a un plugin disponible ici sur le nouveau site de plug-in jquery qui fournit cette fonctionnalité: http://plugins.jquery.com/tristate-checkbox/

Les trois états sont vérifiés, non contrôlés et indéterminés. Il a fourni à l'état indéterminé, selon que toutes les cases à cocher des enfants soient vérifiées ou non.


0 commentaires

0
votes

Voir ma réponse à Cochez la case Tri-State dans HTML? :

Ma proposition utiliserait P>

  • Trois caractères Unicode appropriés pour les trois États par ex. ❓, ✅, li>
  • Un champ de saisie de texte brut (taille = 1) li>
  • pas de frontière li>
  • LIRE UNIQUEMENT LI>
  • Affichage Pas de curseur Li>
  • Onclick Handler pour basculer à travers les trois états li> ul>

    voir des exemples à: p>

    • http://service.bitplan.com/com/bitplan/tristate /tristate.php li>
    • http://jsfiddle.net/wf_bitplan_com/941std72/8/ li> ul>

      HTML Source: strong> p> xxx pré>

      ou comme en ligne JavaScript: p>

      <script type="text/javascript" charset="utf-8">
        /**
         *  loops thru the given 3 values for the given control
         */
        function tristate(control, value1, value2, value3) {
          switch (control.value.charAt(0)) {
            case value1:
              control.value = value2;
            break;
            case value2:
              control.value = value3;
            break;
            case value3:
              control.value = value1;
            break;
            default:
              // display the current value if it's unexpected
              alert(control.value);
          }
        }
        function tristate_Marks(control) {
          tristate(control,'\u2753', '\u2705', '\u274C');
        }
        function tristate_Circles(control) {
          tristate(control,'\u25EF', '\u25CE', '\u25C9');
        }
        function tristate_Ballot(control) {
          tristate(control,'\u2610', '\u2611', '\u2612');
        }
        function tristate_Check(control) {
          tristate(control,'\u25A1', '\u2754', '\u2714');
        }
      
      </script>
      


0 commentaires

0
votes

i Concler sur cette double doublure de https://css-tricks.com/indeterminate-checkboxes /

$('#some_div').on('click','input[type=checkbox]', function(){
   if (this.readOnly) this.checked=this.readOnly=false;
   else if (!this.checked) this.readOnly=this.indeterminate=true;
});


0 commentaires