JavaScript dépendante de la liste déroulante
Comment faire d'un dépendante de la liste déroulante avec JavaScript?
J'ai besoin de première catégorie de la liste pour déclencher d'autres 2 (ou plus) catégories de montrer aux listes qui dépend de ce qui a été votre sélection sur la première catégorie.
Est-ce possible?
Voici mon code :
<code>
function dropdownlist(listindex)
{
document.formname.category2.options.length = 0;
switch (listindex)
{
case "Home Ware" :
document.formname.category2.options[0]=new Option("Select Category2","");
document.formname.category2.options[1]=new Option("Air-Conditioners/Coolers","Air-Conditioners/Coolers");
document.formname.category2.options[2]=new Option("Audio/Video","Audio/Video");
document.formname.category2.options[3]=new Option("Beddings","Beddings");
document.formname.category2.options[4]=new Option("Camera","Camera");
document.formname.category2.options[5]=new Option("Cell Phones","Cell Phones");
break;
case "Education" :
document.formname.category2.options[0]=new Option("Select Category2","");
document.formname.category2.options[1]=new Option("Colleges","Colleges");
document.formname.category2.options[2]=new Option("Institutes","Institutes");
document.formname.category2.options[3]=new Option("Schools","Schools");
document.formname.category2.options[4]=new Option("Tuitions","Tuitions");
document.formname.category2.options[5]=new Option("Universities","Universities");
break;
case "Books" :
document.formname.category2.options[0]=new Option("Select Category2","");
document.formname.category2.options[1]=new Option("College Books","College Books");
document.formname.category2.options[2]=new Option("Engineering","Engineering");
document.formname.category2.options[3]=new Option("Magazines","Magazines");
document.formname.category2.options[4]=new Option("Medicine","Medicine");
document.formname.category2.options[5]=new Option("References","References");
break;
}
return true;
}
</code>
Html :
<form id="formname" name="formname" method="post" action="submitform.asp" >
<table width="50%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td width="41%" align="right" valign="middle">Category1 :</td>
<td width="59%" align="left" valign="middle"><select name="category1" id="category1" onchange="javascript: dropdownlist(this.options[this.selectedIndex].value);">
<option value="">Select Category1</option>
<option value="Home Ware">Home Ware</option>
<option value="Education">Education</option>
<option value="Books">Books</option>
</select></td>
</tr>
<tr>
<td align="right" valign="middle">Category2 :
</td>
<td align="left" valign="middle"><script type="text/javascript" language="JavaScript">
document.write('<select name="category2"><option value="">Select Category2</option></select>')
</script>
<noscript><select name="category2" id="category2" >
<option value="">Select Category2</option>
</select>
</noscript></td>
</tr>
</table>
</form>
Je crois qu'il n'est pas possible de créer une troisième liste qui serait déclenché par le choix de "la Maison ware" et ont des choix différents?
Sûr que c'est possible. Fournissez-nous ce que vous avez fait jusqu'à présent...
Javascript tout est possible 😀 - EX. jsfiddle.net/v917ycp6
Frogmouth, est-il possible qu'il se montre 2 sous-catégories?
TIL. Vous venez de tought moi un nouveau truc.. je ne savais pas que c'était possible aussi avec les différents éléments dans une liste déroulante. Merci pour ça 😉
vous pouvez tout faire. Ce dont vous avez besoin?
Javascript tout est possible 😀 - EX. jsfiddle.net/v917ycp6
Frogmouth, est-il possible qu'il se montre 2 sous-catégories?
TIL. Vous venez de tought moi un nouveau truc.. je ne savais pas que c'était possible aussi avec les différents éléments dans une liste déroulante. Merci pour ça 😉
vous pouvez tout faire. Ce dont vous avez besoin?
OriginalL'auteur dummie | 2015-04-14
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR 03/2018
Je l'examen de cette solution à cause d'une OP (thx @stavasknall) m'a dit que ma solution ne fonctionne pas dans Safari.
La question:
Dans certains navigateurs (comme Safari) le
<option>
à l'intérieur d'un<select>
ne peut pas se cacher via CSS, si vous définissez (en css ou via Jquery)style="display:none"
Safari simplement les ignorer.Ma nouvelle solution
Pour cible les OP objectif est nécessaire pour manipuler le DOM pour changer le
<option>
à l'intérieur de e sélection, pour ce faire, il y a beaucoup de solution, j'suite de celui-ci:HTML
Javascript
Dans ce le script enregistrer le s html à l'intérieur d'un objet Javascript (basé sur
<select>
ID
et<optgroup>
data-rel
) et de les retirer de la DOM. Avec cette solution lorsqu'un<select>
modifier le script de trouver l'option et de l'imprimer dans le rapport<select>
.Comme dans d'autres solution aussi dans celui-ci, vous devez inclure jQuery et vous avez de l'envelopper le code Javascript à l'intérieur de
DOMready listener
ou à la fin de la<body>
.De travail exemple:
http://jsfiddle.net/v917ycp6/595
SOLUTION ORIGINALE
(non NAVIGATEUR CROIX - de ne pas travailler avec webkit)
J'ai changer votre
HTML
,JS
,CSS
de prévenir l'usage excessif de Javascript.jQuery
(une simple librairie JS qui vous aident à créer des complexes chose)HTML
prendre un coup d'oeil: - je utiliser
rel
attribut de lien de catégorie et sous-catégorie (en minuscules et sans espace ou un caractère spécial):CSS
cette CSS masquer la sous-catégorie options (pas d'étiquette), qui montrent que si la catégorie principale est seleceted.
JS (jQuery)
J'utilise jQuery raison est simple, propre, et vous écrire moins de code.
Jetez un oeil à la Documentation de jQuery: http://api.jquery.com/. Si vous ne les utilisez pas, vous devriez.
Ce resurce est nécessaire
De travail exemple:
http://jsfiddle.net/v917ycp6/5/
Modifier
Si vous avez besoin d'activer plusieurs
<select>
après vous cochez une option decategory1
il vous suffit de changer le sélecteur de la variable$subcat
pour sélectionner plus d'un<select>
.HTML
ajouter une classe
.subcat
à tous<select>
vous devez activer lors de la sélection d'category1
:devient:
Maintenant, ajouter le nouveau
<select>
à votre code:REMARQUE:
<option>
ont déjàrel
Javascript
$subcat = $("#category2");
devient$subcat = $(".subcat");
CSS
#category2
devient.subcat
.Cette mise en œuvre à généraliser le comportement de chaque
select
qui a de la classesubcat
.EXEMPLE
http://jsfiddle.net/v917ycp6/9/
Je ne suis pas anglais, et maintenant je n'ai pas le temps de corriger mes fautes de grammaire, désolé. 🙁 Mon Mauvais.
Prendre un coup d'oeil. - Je modifier ma réponse. 🙂
Que faire si l'une des valeurs dans la Catégorie 2 a été commun à plus de 1 catégorie 1 valeurs . Par exemple : si "Audio/Vidéo" dans la Catégorie 2 a été dépendante de la valeur pour les "articles ménagers" et "Éducation" ? Comment cela peut-il être atteint ?
Vous avez une solution élégante, mais votre dernière Violon ne fonctionne pas dans Apple Safari. Avez-vous une solution pour cela?
cela semble fonctionner! Merci beaucoup!
OriginalL'auteur Frogmouth
Exemple de base (javascript, pas de jQuery):
Quelque chose de similaire, mais est-il possible de faire que lorsque vous sélectionnez "1", il montrerait deux cases avec le "PREMIER" et "FIRST2".
Et même avec "2"
Vérifier édité code, le code n'est pas agréable, mais ça fonctionne
Thats it! Merci beaucoup 🙂
OriginalL'auteur user4341206