2009-07-28 7 views
8

In YUI 3 Ich habe einen Knoten, der mein Auswahlbox ist: (auch wenn es mehr als eine)Wie erhalte ich die Auswahlfeldwerte in YUI 3?

Y.get('#regionSelect'); 

Wie erhalte ich die <option> Werte, die derzeit ausgewählt sind, auch gibt es ein Tutorial da sagt mir das explizit, wie ich das machen soll (ich möchte kein ganzes Formular serialisieren)?

Antwort

12

Sobald Sie den Wähler haben, können Sie Kette get und each

Y.get("#regionSelect").get("options").each(function() { 
    // this = option from the select 
    var selected = this.get('selected'); 
    var value = this.get('value'); 
    var text = this.get('text'); 
    // apply secret sauce here 
}); 

Ich habe nur die Demos/Beispiele auf http://developer.yahoo.com/yui/3/ benutze Dinge herauszufinden.

+0

Dank! Wo sagt man, wie man Attribute bekommt? – ash

+1

Gern geschehen. Jedes JavaScript-Lernprogramm zum DOM sollte die Attribute für die Objekte select und option (sowie alle anderen) enthalten. Diese sind nicht YUI-spezifisch, sondern Teil des DOM. Zum Beispiel: http://www.w3schools.com/htmldom/dom_obj_select.asp – seth

+0

Die "ausgewählten" und "Text" sind eigentlich Selektoren, keine Attribute. Haben Sie das vergessen .... – seth

8

// Wert Ausgewählte

  • Y.one ('# regionSelect') ._ node.value;
  • Y.one ('# regionSelect'). Get ('Wert');

// Index Ausgewählte

  • Y.one ('# regionSelect') ._ node.selectedIndex;
  • Y.one ('# regionSelect'). Get ('selectedIndex');
+0

das immer eine leere Zeichenfolge zurückgibt ... muss man nicht die Optionen und dann ihren Wert bekommen? – lisak

+0

Die Eigenschaft "_node" ist nicht Teil der YUI-Knoten-API. Du solltest dich nie darauf verlassen. – Nathan

+0

"_node" ist * visuelle private * Objekteigenschaft basierend auf YUI-Codestandards –

5

Sie werden vielleicht nicht brauchen, um durch alle Optionen zu durchlaufen, wenn Sie benötigen nur eine ausgewählte:

var index = Y.get("#regionSelect").get('selectedIndex'); 
var value = Y.get("#regionSelect").get("options").item(index).getAttribute('value'); 
1

Sie direkt diese nutzen können. Erfordern selector-css3 Modul, IE zu unterstützen.

YUI().use("selector-css3", "node", function (Y) { 
    var text = Y.one("#ownerSelector option:checked").get("text"); 
}); 

http://jsfiddle.net/neosoyn/r8crW/

+0

Danke für den aktualisierten Weg. – AngelWarrior

Verwandte Themen