2015-04-24 23 views
0

與「選擇」選項處理我有以下代碼:在ReactJS

<select id="creditCard" ref="card"> 
{this.state.cards.map(function(card){ 
     return(
      <option value={card.ListId}>{card.FullName}</option> 
     ) 
     }, this)} 
    </select> 

我試圖找出如何從功能的onClick但沒有我嘗試似乎工作搶選定值。任何我想念的想法?

當前我在嘗試this.refs.card.getDOMNode().value但它只給我的文字不是選定的選項值。

回答

1

您可以使用refsdocumentation)和React.findDOMNode如下所示訪問value如圖here

var Example = React.createClass({ 
    render: function() { 
     return (
     <div> 
      <select ref="peopleList"> 
      {this.props.people.map(function(person){ 
       return(<option value={person.id}>{person.name}</option>) 
     }, this)}      
      </select>   
      <button onClick={ this.handleClick }>Selected?</button> 
     </div> 
    ); 
    }, 
    handleClick: function() { 
     alert(React.findDOMNode(this.refs.peopleList).value);  
    } 
}); 

var people = [ 
{ 
    name: 'john', 
    id: 1  
}, 
{ 
    name: 'irma', 
    id: 2  
}, 
{ 
    name: 'rita', 
    id: 3 
} 
]; 

React.render(<Example people={ people }/>, document.getElementById('container')); 
+0

升級了我的React版本,但值是文本而不是value屬性上的id。 –

+0

你確定你的信息不對?我的jsFiddle示例顯示'value'確實包含'id'而不是'name'。 – WiredPrairie

+0

對我而言,應該是ListID。這很好用! –

1

一種選擇是使用onChange<select>抓住當前值,做任何你需要用它做:

handleChange: function(e) { 
    var selectedValue = e.target.value 
    // ... 
}, 

// ...in render() 
<select id="creditCard" onChange={this.handleChange}> 
+0

我嘗試了一些方法,並用此選項得到的地方,我仍然有問題,因爲這給了我文本值,但試驗時他ID我有選項值屬性。 –