[英]How to retrieve looped value attributes from <option> tag and pass to the onchange attribute in <select> tag
[英]How to retrieve data from custom attribute on option tag in React
我有一個帶有select下拉菜單的表單,該下拉菜單包含通過循環對象構建的選項。 每個選項都有一個關聯的value
屬性和一個自定義屬性data
。
我可以很好地檢索該value
,但無法訪問data
屬性。 我嘗試遵循此處找到的JavaScript模式,但無濟於事。 返回的值是undefined
。
這是具有以下形式的組件:
import React from 'react';
import Option from './Option';
class AddmenuItemForm extends React.Component {
createMenuItemTest(event) {
event.preventDefault();
const menuItem = {
subsectionObjectId: this.subsectionObjectId.value,
orderIndex: this.subsectionObjectId.selectedIndex.data,
}
this.props.addMenuItem(menuItem);
this.menuItemForm.reset();
}
render() {
const { subsections } = this.props;
return (
<div>
<form ref={(input) => this.menuItemForm = input} onSubmit={(e) => this.createMenuItemTest(e)}>
<select
ref={(input) => this.subsectionObjectId = input}
className="input mtm">
{
Object
.keys(subsections)
.map(key => <Option key={key} id={key} details={subsections[key]} />)
}
</select>
<button type="submit">Add New</button>
</form>
</div>
);
}
};
export default AddmenuItemForm;
這是選項組件:
import React from 'react';
class Option extends React.Component {
render() {
const { details } = this.props;
const key = this.props.id;
return (
<option value={key} data={details.numberMenuItems}>
{details.name}
</option>
)
}
}
export default Option;
渲染的HTML如下所示( <select>
部分):
<select>
<option value="KhEncads5F" data="11">Lunch</option>
<option value="rxGeTpqSDF" data="2">Dinner</option>
</select>
有沒有辦法在選定的<option>
標記上檢索額外的信息?
使用您對DOM
元素的ref
,您可以訪問和和selectedOptions
:
this.subsectionObjectId.selectedOptions[0].getAttribute('data-items')
檢查以下工作示例:
https://jsfiddle.net/1rmftx4z/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.