Dav*_*ser 2 javascript reactjs
我有一个带有选择下拉列表的表单,其中包含通过循环对象构建的选项。每个选项都有一个关联的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;
Run Code Online (Sandbox Code Playgroud)
这是 Option 组件:
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;
Run Code Online (Sandbox Code Playgroud)
呈现的 HTML 如下所示(<select>部分):
<select>
<option value="KhEncads5F" data="11">Lunch</option>
<option value="rxGeTpqSDF" data="2">Dinner</option>
</select>
Run Code Online (Sandbox Code Playgroud)
有没有办法检索所选<option>标签上的额外信息?
使用refyou have 到您的DOM元素,您可以访问 和selectedOptions:
this.subsectionObjectId.selectedOptions[0].getAttribute('data-items')
Run Code Online (Sandbox Code Playgroud)
检查这个工作示例:https :
//jsfiddle.net/1rmftx4z/
| 归档时间: |
|
| 查看次数: |
2169 次 |
| 最近记录: |