2009-07-28 7 views
8

は、私は私の選択ボックスであるノードがあります(?つ以上ある場合でも)私は、現在選択されている<option>値を取得するにはどうすればよいYUI 3で選択ボックスの値を取得するにはどうすればよいですか? YUI 3では

Y.get('#regionSelect'); 

をまた、チュートリアルでは、そこにありますこれを行う方法を明示的に教えてくれます(私はフォーム全体をシリアル化したくありません)。

答えて

12

あなたは、セレクタを持ってたら、チェーンgeteach

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 
}); 

私は物事を把握するためにhttp://developer.yahoo.com/yui/3/のデモ/例を使用してきたことができます。

+0

ありがとう!属性を取得する方法はどこにありますか? – ash

+1

ようこそ。 DOMに関するJavaScriptチュートリアルでは、選択オブジェクトとオプションオブジェクト(および他のすべてのオブジェクト)の属性が必要です。それらはYUI固有ではなく、DOMの一部です。例:http://www.w3schools.com/htmldom/dom_obj_select.asp – seth

+0

'selected'と 'text'は実際にはセレクタであり、属性ではありません。それを残して.... – seth

8

//

  • Y.one( '#のregionSelect')._ node.value値

    を選択しました。
  • Y.one( '#regionSelect')。get( 'value'); //選択したインデックス

    • Y.one( '#のregionSelect')._ node.selectedIndex

  • Y.one( '#regionSelect')。get( 'selectedIndex');
+0

これは常に空の文字列を返します...オプションとその値を取得する必要はありませんか? – lisak

+0

"_node"プロパティはYUI Node APIの一部ではありません。あなたは決してそれに頼るべきではありません。 – Nathan

+0

"_node"はYUIコーディング標準に基づく* visual private *オブジェクトプロパティです –

5

あなただけ選択された1つを必要とする場合は、すべてのオプションを繰り返し処理する必要はないかもしれません。

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

あなたはこれを直接使用することができます。 IEをサポートするには、selector-css3モジュールが必要です。

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

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

+0

更新された方法をありがとう。 – AngelWarrior

関連する問題