2010-07-08 11 views

Répondre

2

pour la liste déroulante:

$('idOfSelect').selectedIndex = x; 

texte:

$('IdOfInput').value = 'Foo'; 
+0

est-il une autre façon de l'option pour faire ça. comme dans jQuery ('# idOfSelect'). val ([2,4]) ou jQuery ('# idOfInput'). val ('Foo') – YuanChen

+0

à propos de l'élément select Je ne connais qu'un tableau de valeur de l'élément select. comment puis-je le transformer en selectedIndex – YuanChen

8

essentiellement - element.get("value"); renvoie la valeur pour toutes les entrées, sélectionne et textareas, .set("value", value); pour les régler (sauf pour les multiples)

c'est plus compliqué pour sélectionner avec plusieurs - le ci-dessus renvoie le premier sélectionné seulement, vous devez faire element.getSelected().get("value") pour recevoir un tableau de valeurs (.getSelected() en lui-même retournera les pointeurs aux éléments option réels)

et enfin, pour définir plusieurs sélections, la seule façon que je puisse penser à atm est d'écrire votre propre prototype d'élément qui marche par nœuds enfants avec les valeurs spécifiées et ne .set("selected", "selected")

laissez-moi savoir si vous avez besoin d'aide pour rédiger ce dernier

2

la réponse est correcte au sujet des multiples, et avoir besoin d'utiliser selectEl.getChildren('option').each(function(option)...

mais même pour simple sélectionne, dans IE (je teste ceci dans IE9) s'il n'y a pas de propriété "value" dans chaque option, alors Mootools échoue, c'est-à-dire que selectEl.set('value', value) ne fonctionne pas. Dans FF cela fonctionne et dans IE cela fonctionne si vous définissez la propriété "value" de chaque élément.

Ma solution est:

selectEl.getElements('option').each(function(option) { 
    option.selected = option.get('value')==value 
}); 

Notez que option.get ('valeur') fonctionne même dans IE, où il n'y a pas de propriété value, Mootools fournit text