使用react js获取选定的选项文本?

时间:2015-05-18 14:54:58

标签: javascript reactjs

我的选择列表组件呈现了我的选择列表:

<form className="pure-form">
<select ref="selectMark" className="mark-selector"
 onChange={this.onChange}>{this.getOptions()}
</select>
</form>

我在组件上有一个方法来创建选项:

getOptions: function () {
    return this.props.renderProps.data.map(function (item) {
        return <option key={item.value} value={item.value}>{item.label}</option>;
    }.bind(this));

},

我的onChange方法可以正常使用值:

onChange: function(event) {
    var newValue = event.nativeEvent.target.value;
    this.props.renderProps.onSaveCare(newValue);
    this.setState({value: newValue});
    this.toggleEdit();
},

有没有办法可以获得选项文字?这给了我未定义的

event.nativeEvent.target.text; //undefined

9 个答案:

答案 0 :(得分:45)

这样的事情应该做

var index = event.nativeEvent.target.selectedIndex;
event.nativeEvent.target[index].text

这是一个演示 http://jsbin.com/vumune/4/

答案 1 :(得分:23)

您可以通过替换此选项来获取选项文本:

event.nativeEvent.target.text;

用这个:

event.target.options[event.target.selectedIndex].text

答案 2 :(得分:3)

这对我有用

const {options, value} = e.target;
console.log(options[value].innerHTML);

编辑:我刚刚意识到我正在使用&#34;值&#34;字段,用于存储某些对象的ID,从0到n。我想更好的方法可能如下:

const {options, selectedIndex} = e.target;
console.log(options[selectedIndex].innerHTML);

答案 3 :(得分:2)

选项的文字只是相应label的{​​{1}}属性。

在您的情况下,要检索所选选项的文本,您可以执行以下操作:

item

Array.prototype.find是ES6提案的一部分。 Underscore或lodash已将其打包为_.find method

答案 4 :(得分:1)

如果是单选,这里有更简单的方法:

e.target.selectedOptions[0].text

答案 5 :(得分:0)

  

这是我从反应j​​s中的select选项中检索文本的方法。

this.refs.selectMark[this.refs.selectMark.value].text

答案 6 :(得分:0)

2020年,这对我有用

我的选择元素:

          <FormGroup>
                  {<Select
                    closeMenuOnSelect={true}
                    components={animatedComponents}
                    options={Options}
                    value = "Ahmedabad"
                    onChange={this.handleChange}
                    name = "citySelect"
                  />}
          </FormGroup>

呼叫处理程序:

handleChange = (e) => {
    console.log(e.value)
}

答案 7 :(得分:0)

相应地更改菜单项

当前/临时地址 永久地址 办公室/公司地址

并在发生更改事件时获取

onChange = {(e,index)  =>
( setAddressChangeType(e.target.value),  console.log(index.props.id) )
} 

答案 8 :(得分:0)

相应地进行下拉菜单,并在诸如此类的更改事件中获得价值

onChange = {(e,index)  =>
( setAddressChangeType(e.target.value),  console.log(index.props.id) )
}