Tableau HTML
Rangée 1: Col 1 [
Country DropDown
] | Col n ° 2 [StateDropDown
]Rangée 2: Col 1 [
Country DropDown
] | Col 2 [StateDropDown
]
table a 2 dropdownlists
, pour Country
et State
– cela fonctionne dans une liste déroulante, mais sa désactivation des listes déroulantes autres / États aussi!
Le problème est que, alors que les États-Unis et l’Australie ont du texte diff states selected
, mais en col2
avec le même ID / valeur d’ State
sélectionné 3
(si je sélectionne Californie, Perth est également désactivé!), Mon code les désactivant en tant que doublons car il compare le valeur sélectionnée et non texte) pour, par exemple, cette sélection désactive Perth ..
[USA] -> [California] (value = 3) [Australia] -> [Perth] (*also* has value= 3) so its disabled
Comment faire cela comme une unique combination
de pays et d’état dans chaque rangée? ou simplement comparer les textes des listes déroulantes? …
Country ID + State ID Value already exist
? JS Fiddle
// Javascript Does not disable States previously selected $("#CountryTable").on('change', '.State', function() { var dropDownText = $('#CountryTable .State select').not(this).map(function() { return this.SelectedText; // does not work this.val() works but useless }).get(); var selectedValue = $(this).val(); var otherDropdowns = $('.State').not(this);
otherDropdowns.find (‘option [valeur =’ + selectedValue + ‘]’). prop (‘disabled’, true); });
Country A Country B Country C State 1 State 2 State 3 State 4 State 5 Country A Country B Country C State 1 State 2 State 3 State 4 State 5
*** Image pour montrer quelque chose de similaire … pas précis
- Lien direct vers un onglet jQuery d’une autre page?
- Masquer le bouton d’envoi jusqu’à ce que le formulaire soit valide
- Remplir une table html lors d’un événement à succès jQuery
- Est-ce une mauvaise pratique d’append des atsortingbuts non standard aux éléments DOM? – HTML / Javascript
- Trier les lignes de la table en fonction des données de la table
Ce n’est pas une solution parfaite que vous pouvez simplement copier / coller, mais cela se rapproche vraiment de ce que vous voulez.
Je l’ai fait comme une fonction entière avec 4 arguments:
- La vraie
table
, de préférence un id
- Le
td
, de préférence une class
- La
table
cachée à cloner, de préférence un id
- Le nouveau
button
rangée, de préférence un id
En vous laissant libre de nommer vos éléments comme vous le souhaitez dans le code HTML sans vous soucier de réparer les MULTIPLES emplacements où ces quatre éléments sont utilisés dans le script.
Maintenant … C’est juste un bon début.
En fait, lorsque l’utilisateur passe de “Pays A” à “Pays B”, la liste déroulante des états devrait être différente!
C’est le seul problème que j’ai laissé… Puisque je ne sais pas comment vous voulez charger ces options.
Cela m’a pris beaucoup de temps … je l’ai fait parce que je ne pouvais pas croire qu’une demande aussi “simple” puisse être aussi complexe … j’ai dû l’écraser
;).
Voici donc le code (JS uniquement) et une démonstration de CodePen qui fonctionne.
var excusiveSelect = function(tableID,rowCLASS,dummyID,cloneBtn){ // Preferably ID, CLASS, ID, ID console.clear(); // Cloning function var cloneRow = function(){ var newrow = $(dummyID).find(rowCLASS).clone(); $(tableID).append(newrow); refresh_mapping(); }; // Generate new lines $(cloneBtn).on("click",cloneRow); // ================================================================================ INITIALISATION // Selection mapping var row_count; var row_map = {}; // Get select clas names per colums var col_count = $(rowCLASS).first().find("td").length; var col_classes = []; for(i=0;i
- L’utilisation d’atsortingbuts personnalisés est-elle valide?
- Utiliser Javascript pour créer un identifiant d’entrée dynamic
- Comment désactiver un élément particulier dans un élément déroulant
- Comment mettre le texte défilant dans la balise de titre?
- Comment obtenir nodeType en utilisant jquery
- masquer automatiquement les colonnes d’un tableau en cochant une case avec jQuery
- Comment obtenir l’URL chargée de la page actuelle depuis iframe
- En cliquant sur ancre devrait exécuter javascript pas aller à une nouvelle page
- Blocage d’un cadre d’origine «http: // localhost: 8084» pour accéder à un cadre d’origine croisée
- Comment puis-je suivre un événement à l’aide de Firebug?