2009-07-28 29 views
8

在YUI 3我有我的选择框的节点:(?即使有不止一个)如何获取YUI 3中的选择框值?

Y.get('#regionSelect'); 

如何获取当前选择的<option>值此外,有没有一个教程出来那里明确告诉我如何做到这一点(我不想序列化整个表单)?

回答

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 2009-07-28 23:19:28

+1

不客气。 关于DOM的任何JavaScript教程都应该有select和option对象(以及所有其他对象)的属性。这些不是YUI特有的,而是DOM的一部分。例如:http://www.w3schools.com/htmldom/dom_obj_select.asp – seth 2009-07-28 23:46:01

+0

'selected'和'text'实际上是选择器,而不是属性。留下来...... – seth 2009-07-28 23:50:58

8

//选定值

  • Y.one( '#regionSelect')._ node.value;
  • Y.one('#regionSelect')。get('value');

//选择指数

  • Y.one( '#regionSelect')._ node.selectedIndex;
  • Y.one('#regionSelect')。get('selectedIndex');
5

您可能不需要通过所有选项进行迭代,如果你只需要选定一个:

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

您可以直接使用。需要selector-css3模块才能支持IE。

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

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