Définir la sélection des Indices dans les Multi-Sélectionnez à l'Aide de Javascript
Je ne sais pas pourquoi cela ne fonctionne pas et aimerais un peu d'aide avec elle! Et oui, j'ai regardé cette
Im essayant de définir plusieurs options dans une sélection de l'élément sélectionné à l'aide d'une table contenant les valeurs que je veux sélectionnés et interating à travers le tableau et les options de l'élément select. Veuillez trouver le code ci-dessous:
//value is the array.
for (var j = 0; j < value.length; j++) {
for (var i = 0; i < el.length; i++) {
if (el[i].text == value[j]) {
el[i].selected = true;
alert("option should be selected");
}
}
}
Après la fin de ces boucles, rien n'est sélectionné, même si le alert() se déclenche.
Toutes les idées sont les bienvenue!
Grâce
CM
PS (pas sûr de ce qui s'est passé à la mise en forme du code).
EDIT: Plein de fonction
if (CheckVariableIsArray(value) == true) {
if (value.length > 1) { //Multiple selections are made, not just a sinle one.
var checkBoxEl = document.getElementById(cbxElement);
checkBoxEl.checked = "checked";
checkBoxEl.onchange(); //Call function to change element to a multi select
document.getElementById(element).onchange(); //Repopulates elements with a new option list.
for (var j = 0; j < value.length; j++) {
for (var i = 0; i < el.length; i++) {
if (el[i].text === value[j]) {
el[i].selected = true;
i = el.length + 1;
}
}
}
//document.getElementById(element).onchange();
}
}
else {
for (var i = 0; i < el.length; i++) {
if (el[i].innerHTML == value) {
el.selectedIndex = i;
document.getElementById(element).onchange();
}
}
}
OriginalL'auteur CatchingMonkey | 2011-12-01
Vous devez vous connecter pour publier un commentaire.
Fonctionne pour moi. Vous mettez-vous el et la valeur correctement? Et êtes-vous sûr que vous voulez rechercher à chaque option de innerHTML au lieu de la valeur de l'attribut?
Voir le jsFiddle.
HTML:
JS:
.innerHTML
ou.text
n'a pas d'importance dans mon exemple - à la fois le travail..text
est toujours pas à obtenir la valeur de l'attribut si c'était votre but. Pastebin votre code complet.J'ai mis à jour mon code. Espérons que cela aide!
Pas vraiment. Il n'existe toujours pas de code. Par exemple, d'où vient
value
viennent et où neel
viennent. Je vous suggère de placer quelquesconsole.log(...)
s tout au long de la fonction et vérifier chaque valeur est ce que vous attendez qu'elle soit.fonctionne très bien je vous remercie pour sauver ma journée
OriginalL'auteur simshaun
Bien, tout d'abord, vous devez définir le code html, sélectionnez le contrôle de plusieurs biens, quelque chose comme cela "<select multiple="multiple">...</select>", et puis vous pouvez utiliser la fonction javascript SetMultiSelect (défini ci-dessous) pour définir la select html de contrôle:
OriginalL'auteur 夏夜流萤
Tombé sur cette question et il n'était pas satisfait des réponses.
Voici un générique, non la version jQuery. Il utilise des
Array.indexOf
, si possible, mais revient à une boucle foreach si elle n'est pas disponible.Passer d'un nœud à la fonction, à côté d'un tableau de valeurs. Lève une exception si un élément non valide est passé en elle. Il utilise
===
à vérifier la valeur. Pour la plupart, assurez-vous que vous êtes en comparant la valeur à un tableau de chaînes de caractères.E. g.
selectValues( document.getElementById( 'my_select_field' ), [ '1', '2', '3'] );
OriginalL'auteur Sean