2010-07-08 21 views

risposta

2

Per discesa:

$('idOfSelect').selectedIndex = x; 

Per il testo:

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

c'è qualche altro modo dell'opzione per fare questo. come in jQuery ('# idOfSelect'). val ([2,4]) o jQuery ('# idOfInput'). val ('Foo') – YuanChen

+0

sull'elemento select Conosco solo una matrice di valore dell'elemento select. come posso trasformarlo in selectedIndex – YuanChen

8

fondamentalmente - element.get("value"); restituisce il valore per tutti gli ingressi, seleziona e textareas, .set("value", value); per impostare (tranne per multipli)

è più complicato per la selezione con più - il sopra restituisce il PRIMO solo selezionato, è necessario fare element.getSelected().get("value") per ricevere un array di valori (.getSelected() sul proprio restituirà i puntatori per l'attuale option elementi)

e, infine, per impostare selezioni multiple, unico modo che posso pensare atm è quello di scrivere il proprio prototipo elemento che cammina attraverso nodi figli con i valori come specificato e fa .set("selected", "selected")

fatemi sapere se avete bisogno di aiuto per iscritto quest'ultimo

2

la risposta è corretta su multipli, e che hanno bisogno di usare selectEl.getChildren('option').each(function(option)...

ma anche per singola seleziona, in IE (sto testando questo in IE9) se non esiste alcuna proprietà "valore" in ciascuna opzione, Mootools non funziona, ad esempio selectEl.set('value', value) non funziona. In FF funziona e in IE funziona se si imposta la proprietà "valore" di ciascun elemento.

La mia soluzione è:

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

noti che option.get ('valore') funziona anche in IE, dove non c'è alcuna proprietà value, Mootools fornisce text

Problemi correlati