javascript - 如何从父标签上的子标签 onChange 获取文本?

标签 javascript html reactjs

我想获取 Select 组件内的选项标记的文本(城市名称),并将其用于 handleChangeCity() 函数。问题是,我尝试使用 event.target.text 在 handleChangeCity() 函数中访问此文本,但它返回整个选项标签,而不仅仅是其中的文本。我该怎么做?

                  <Select
                      native
                      onChange={this.handleChangeCity}
                      value={location.id}
                      required
                      disabled={locacation.idState === 0}
                      style={styles.widthInput}
                    >
                      {cities.map(city=> (
                        <option key={city.id} value={city.id} disabled={city.id === 0}>
                          {city.name}
                        </option>
                      ))}
                    </Select>

功能:

handleChangeCity = (optionSelected) => {
    const { location } = this.state;
    this.setState({ location: { ...location, idCity: optionSelected.target.value, nameCity: optionSelected.target.text } });
  }

最佳答案

您正在尝试获取选择的文本。要获取所选选项的文本,您可以执行以下操作:

handleChangeCity = (optionSelected) => {
    const { location } = this.state;
    const { options, selectedIndex } = optionSelected.target;
    this.setState({
        location: {
            ...location,
            idCity: optionSelected.target.value,
            nameCity: options[selectedIndex].text
        }
    });
};

关于javascript - 如何从父标签上的子标签 onChange 获取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61128389/

相关文章:

javascript - 在 HTML5 应用程序中,如何使用 javascript 检查文件是否存在?

reactjs - 通过 api 路由/强大的 next.js 文件上传 - 不起作用

javascript - 函数作为 React 子项无效。如果您返回一个组件而不是从渲染中返回,则可能会发生这种情况

javascript - 如何设置加载动态内容的 onClick 属性?

javascript - JSTree Proton 主题更改图标以打开和关闭文件夹

html - 无法使用flexbox垂直对齐div

jquery - 如何使用 HTML5 canvas 创建软描边

javascript - ReactJS - 使用 jQuery 从服务器加载数据

javascript - 如何在不同的文件中将状态传递给一个组件到另一个组件

javascript - 覆盖浏览器中的快捷键