2009-07-28 16 views
8

benim seçme kutusu olan bir düğüm vardır: (? Birden fazla olsa bile) Şu anda seçilir <option> değerleri nasıl alabilirimSeçme kutusu değerlerini YUI 3'te nasıl alabilirim? YUI 3'te

Y.get('#regionSelect'); 

Ayrıca, öğretici orada bir yerde orada bunu açıkça nasıl yapacağımı anlatıyor (bütün formu serileştirmek istemiyorum)? Eğer seçici sahip olduktan sonra

cevap

12

yapabilirsiniz zincir get ve 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 
}); 

Sadece olanları anlamaya http://developer.yahoo.com/yui/3/ üzerinde demolar/örnekler kullanıyorum ettik.

+0

teşekkürler! Özniteliklerin nasıl alınacağı nerede? – ash

+1

Bir şey değil. DOM ile ilgili herhangi bir JavaScript öğretici, seçme ve seçenek nesneleri (yanı sıra diğerleri) için gerekenlere sahip olmalıdır. Bunlar YUI'ye özgü değil, DOM'ın bir parçası. Örneğin: http://www.w3schools.com/htmldom/dom_obj_select.asp – seth

+0

'Seçilen' ve 'metin' aslında öznitelik değil, seçicidir. Bunu dışarıda bıraktı .... – seth

8

Değer

  • Y.one ('# regionSelect') ._ node.value Seçilmiş //;
  • Y.one ('# regionSelect'). Get ('value');

Endeksi

  • Y.one ('# regionSelect') ._ node.selectedIndex Seçilmiş //;
  • Y.one ('# regionSelect'). ('SelectedIndex'); Sadece seçilmiş birine gerekiyorsa
+0

yerine .one() kullanıldığında bu benim için çalıştı. Bu her zaman boş bir dize döndürüyor ... seçenekler ve sonra bunların değerlerini almak zorunda değil mi? – lisak

+0

"_node" özelliği, YUI Düğüm API'sinin bir parçası değildir. Asla ona güvenmemelisin. – Nathan

+0

"_node" * görsel özel * nesne özelliği YUI kodlama standartlarına göre –

5

Tüm seçenekler arasında yineleme gerekmeyebilir: Doğrudan kullanabilirsiniz

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

. IE'yi desteklemek için selector-css3 modülünü zorunlu kılın.

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

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

+0

Güncelleştirdiğiniz yol için teşekkürler. – AngelWarrior

İlgili konular