2010-11-08 5 views
0

J'ai un SELECT dans un FORMULAIRE. Cette sélection est remplie à l'aide de js.Besoin d'une solution à ce problème de codage javascript

Je dois ajouter un attribut "Selected" à l'une de ces options. Je trouve lequel, en vérifiant une base de données MySql pour voir le nom de la communauté qui a besoin d'un "attribut sélectionné" ajouté.

<select name="community" id="community"> 
    //OPTIONS HERE 
</select> 

La fonction de remplissage():

function filler(com){ 

//com is the options which needs to be selected, this variables value comes from the mysql database 

var community = document.getElementById("community"); 
var area = document.getElementById("area").value; 
// area is just another input on the page which value also is fetched from mysql db. Each area has x communities, so I have alot of IF:s. 


if(area == 'Blekinge') { 
community.length = 6; 
community.options[0].value = "Välj Kommun"; 
community.options[0].text = "-- Välj Kommun --"; 
community.options[0].id = "Välj Kommun"; 
community.options[1].value = "Karlshamn"; 
community.options[1].text = "Karlshamn"; 
community.options[1].id = "Karlshamn"; 
community.options[2].value = "Karlskrona"; 
community.options[2].text = "Karlskrona"; 
community.options[2].id = "Karlskrona"; 
community.selected = 0; 
} 

    } 

Comme vous pouvez le voir, la variable "com" est l'option qui doit avoir l'attribut "sélectionné" ajouté.

J'ai plus de 30 de ces if-statements, et je n'ai aucune idée comment créer une fonction pour ajouter cet attribut "Selected" à l'option de correspondance.

J'ai donc "com" qui pourrait par exemple être "Karlskrona" dans l'exemple ci-dessus. Comment dois-je ajouter l'élément sélectionné?

je besoin d'une simple fonction de ce qui fonctionne dans tous les principaux navigateurs ...

+0

Juste une observation, faites vos éléments '

+0

@Nick: Oui, ils le font, c'est comme ça que je "me souviens" d'eux quand la page est rechargée. –

Répondre

1

Définissez la propriété selectedIndex du SELECT selon l'indice dont vous avez besoin. Zero-based, bien sûr.

+0

J'ai comme je l'ai dit 30 autres déclarations IF, où l'indice changerait 30 fois. –

+0

De même, vous pouvez ajouter à travers jquery. –

1

Il suffit de faire

community.value = com; 

exemple à http://www.jsfiddle.net/jMapA/

+0

Le select doit également être rempli avec les communautés, de sorte que l'utilisateur peut le modifier s'il le souhaite. –

+0

@Camran, à la fin de votre code le faire .. il ne modifie pas le contenu de la sélection, il sélectionne simplement l'option qui a la valeur de 'com' –

0
for(var i = 0; i < community.options.length; i++) { 
    if(community.options[i].id == com) 
    community.selectedIndex = i; 
} 
0
function selectOptionValue(selectId, value) 
{ 
    select = document.getElementById(selectId); 
    if (select) 
    { 
     for (var i = 0; i < select.options.length) 
     { 
      if (select.options[i].value == value) 
      { 
       select.options[i].selected = 'selected'; 
       return true; 
      } 
     } 
    } 

    return false; 
} 

Utilisez ma fonction comme ceci:

selectOptionValue('community', 'Karlskrona');