无法从输入类型 =“选择”中获取值

Posted

技术标签:

【中文标题】无法从输入类型 =“选择”中获取值【英文标题】:Can't take value from Input Type ="select" 【发布时间】:2021-06-29 05:53:24 【问题描述】:

我正在尝试从下拉菜单中获取价值,但无法这样做。 我的 dropdrop 代码是:

  <Input type="select" name="type" id="etype" value=this.state.type onChange=this.changeTypeHandler>
                            <option value="Doctor">Doctor</option>
                            <option value ="Nurse"> Nurse</option>
                        </Input>

而我的 changeTypeHandler 是

 changeTypeHandler = (event) => 
        this.setState( type: event.target.value );
    

我在 type 的解决方案中看到了 this.state.selectedValue 。那么在这种情况下应该怎么做呢? 抱歉,如果这是一个基本问题,但我是新手,无法找到解决方案。谢谢

【问题讨论】:

【参考方案1】:

你好,你可以用这个代替那个

function get_selected_input() 
  alert(document.querySelector('#etype').value)
    <select type="select" name="type" id="etype" onChange=get_selected_input(this)>
                            <option value="">Select Option</option>
                           <option value="Doctor">Doctor</option>
                            <option value ="Nurse"> Nurse</option>
                        </select>

【讨论】:

如何设置组件的状态?如何在文档等情况下设置类型属性。显示错误【参考方案2】:

你需要使用 value 而不是 selectedValue。

changeTypeHandler = (event) => this.setState(type: event.target.value)

【讨论】:

【参考方案3】:

试试这样:

<select name="type" id="etype" value=this.state.selectedValue 
      onChange=this.changeTypeHandler>
      <option value="Doctor">Doctor</option>
      <option value ="Nurse"> Nurse</option>
</select >

对于 onChange 函数

changeTypeHandler =(event) =>

    this.setState(selectedValue:event.target.value);

【讨论】:

仍然没有取值 你创建了状态 selectedValue 吗? 我已将您的 selectedValue 替换为 type..which 在我的状态下。 你在changeTypeHandler函数和输入值属性中都替换了吗? 我已将上面的代码更新为原始版本。现在让我试试 【参考方案4】:

最好用 Reactjs 的方式来做,这意味着你可以使用 select tag

<select value=this.state.value onChange=this.handleChange>
            <option value="Doctor">Doctor</option>
            <option value="Nurse">Nurse</option>
</select>

和处理程序

handleChange(event) 
    this.setState(value: event.target.value);
  

React official web site 也推荐这种方式。

【讨论】:

【参考方案5】:

试试这个

import React from "react";
import  Input  from "reactstrap";

export default class App extends React.Component 
  state = 
    type: ""
  ;

  changeTypeHandler = (e) => 
    this.setState( type: e.target.value );
  ;

  render() 
    console.log(this.state)
    return (
      <div className="App">
        <Input
          type="select"
          name="type"
          id="etype"
          value=this.state.type
          onChange=this.changeTypeHandler 
        >
          <option value="Doctor">Doctor</option>
          <option value="Nurse"> Nurse</option>
        </Input>
      </div>
    );
  

【讨论】:

不工作。这是我一开始在做的事情 @BATMAN 您需要详细说明,因为这在此沙箱中运行良好 codesandbox.io/s/divine-water-ww8t0 我不知道,但即使我选择了一个值,它也会发送一个空字符串 您和我的代码的唯一区别是您在我使用 ''(single ) 时使用 "" (double) 进行了初始化。这有什么不同吗? 否,但由于此代码在沙箱中运行,它也应该在您的本地运行。你试过沙盒吗?

以上是关于无法从输入类型 =“选择”中获取值的主要内容,如果未能解决你的问题,请参考以下文章

我无法从通过 Ajax 创建的选择元素中设置值或获取值

请问ABAP中,如何从标准屏幕上获取到选择屏幕中一个字段的输入值。可以举个例子吗?这里感谢大家了。

无法获取表单以验证所需的选择输入

ABAP选择屏幕字段无法输入负值

ABAP选择屏幕字段无法输入负值

如何从 Javascript 中获取值以输入文本表单?