2016-07-14 3 views
0

Est-il possible de détecter si des options Bootstrap Muiltiselcts ont été modifiées à la fermeture de la liste déroulante? Je veux utiliser l'événement onDropdownHidden documenté ici sur la page des docteurs auteurs: onDropDownHidden Event pour me permettre de voir si l'utilisateur a désélectionné ou sélectionné quelque chose depuis que le menu déroulant a été ouvert. À l'ouverture, le multi-select aura des options pré-sélectionnées. J'ai besoin de savoir (surtout) s'ils ont basculé une option (donc pas de changement aux sélections initiales) afin que je puisse décider d'appeler une fonction pour lancer l'enregistrement des nouveaux changements. Je veux éviter d'appeler cette fonction après une onChange d'une option si l'état résultant est le même. Son similaire à isDirty permet de vérifier si un contrôle sur un formulaire a été modifié - y a-t-il une technique similaire pour Multi-select?Comment détecter les modifications dans Bootstrap Multiselect

Merci.

Répondre

0

Le multiselect a-t-il une valeur par défaut définie? Ces sélections ne seront-elles utilisées que lors de la mise à jour/de l'ajout de quelque chose à une base de données?

Je ne sais pas vraiment si vous voulez utiliser javascript ou PHP, mais si vous utilisez PHP, est-ce que cela aurait du sens de vérifier if isset($multiselectfield){}?

Ou plus simplement simplement s'il a une valeur par défaut, vérifiez if ($multiselectfield != defaultvalue) {}. Si ce n'est pas la valeur par défaut alors faites-le, sinon la valeur par défaut doit avoir été laissée seule. Juste mes pensées, mais les questions ne sont pas exactement formulées pour être en mesure de vous donner une réponse adéquate. Je ne fais que le poignarder de toute façon.

+0

Lors de l'initialisation, les multisélections auront certaines options vérifiées comme lues dans la base de données. Im mise à jour via jquery ajax '$ post()' avec les données multiselct sérialisées. Ensuite, en PHP, mettre à jour la table. Im penser selon les lignes de: Lire l'état initial de chaque option, stocker tous les états, puis 'onDropdownHidden' comparer les états si quelque chose a changé -show un (pré-caché) 'Enregistrer les changements' bouton. Je me demandais si cela est nécessaire s'il existe une meilleure méthode intégrée, technique ou quelque chose d'inconnu pour moi. –

+0

Je suis vraiment un moyen pour vous de le faire. Je crois, cependant 'onDropdownHidden' est plus d'une fonctionnalité de l'interface utilisateur que tout. Vous voudrez toujours obtenir leurs valeurs et voir si elles sont définies, donc je ne suis pas sûr que vous devez vérifier l'état de 'onDrodownHidden', mais vous devriez vérifier les valeurs de chaque sélection elles-mêmes. Vous pouvez limiter la quantité que le serveur doit faire en ajoutant des instructions conditionnelles, en vérifiant si elles sont définies avant d'obtenir la valeur de POST. C'est juste ce que j'envisage, mais on dirait que vous êtes sur la bonne voie! –