2010-03-23 4 views
0

J'ai ce code et je continue d'être indéfini si je teste l'index selected.ne peut pas mettre selectedIndex hors sélection avec javascript

alert(x.selectedIndex); 

Donc, le réglage est également un problème.

Quelqu'un peut-il voir quel est le problème?

//makes list off tags 
function ttyps_select(data,naamsel,selectid, containerid){ 

if(!ttyps.length){ 
    jQuery.each(data, function(index, itemData) { 
     ttyps.push(new Tagtype(itemData.tag_id, itemData.tag)); 
    }); 
} 
opties = "<option value=\"-1\"></option>\n"; 
for(var i=0; i<ttyps.length; i++) { 

    var dfnkey = ttyps[i].tag_id; 
    var dfnsel = ttyps[i].tag; 

    if (dfnkey==selectid) { 
     opties +="<option value="+ttyps[i].tag_id+" SELECTED>"+dfnsel+"</option>\n"; 

    } else { 
     opties +="<option value="+dfnkey+">"+dfnsel+"</option>\n"; 
    } 
} 

$("<select name=\"" + naamsel + "\" size=\"1\" ></select>") 
     .html(opties) 
     .change(function(e){ 
      select_tag(containerid); 
     }) 
     .appendTo("#"+naamsel); 
} 

function select_tag(id) { 
    var x = $('#frmttypid'+id+' select'); 
    var ttidx = x.val(); 
    var tag = getTagtype(ttidx).tag; 
    x.selectedIndex=0; 
    x.blur(); 
    if(tag){ 
     document.forms['frmtags']['frmtag'+id].value=tag; 
    } 
} 

grâce, Richard

Répondre

1

$('selector') (jQuery) retourne un objet avec collection semblable à un tableau de noeuds DOM assortis. Votre variable x est un objet jQuery, pas une référence à un élément <select/> particulier. utiliser

x[0].selectedIndex 

x[0] est une référence au premier noeud DOM dans l'objet jQuery.

+0

merci, j'ai déjà trouvé la solution en utilisant document.getElementById(); parce que je n'avais pas compris que le sélecteur jquery renvoie toujours un tableau comme collection. Donc, le vôtre est meilleur et je vais changer le code. – Richard

Questions connexes