javascript - React 中如何区分不同的表单输入?

标签 javascript html forms reactjs ecmascript-6

我有两个表单输入,我想输入姓名和电子邮件。

enter image description here

我正在关注 React 文档 ( https://facebook.github.io/react/docs/forms.html ) 中的示例,但我不确定如何区分这两种不同的形式。当我输入第一种或第二种形式时,另一种形式也会收到 this.state.value

constructor(props) {
    super(props);
    this.state = {
        value: '',
    }
}

handleChange(e) {
    this.setState({
        value: e.target.value,
    })
}

input() {
    return (
        <form>
            <input type="text" value={this.state.value} onChange={this.handleChange.bind(this)}/>
            <input type="email" value={this.state.value} onChange={this.handleChange.bind(this)}/>
        </form>
    )
}

我正在使用 ES6。我是否需要某种 id 来区分这两种形式?我尝试在构造函数中使用不同的值(即 email = ''),但它产生了相同的结果。

最佳答案

您应该将电子邮件和值存储在不同的状态。

this.state = {
    text: '',
    email: ''
}

你应该改变一点handleChange方法

handleChange(e) {
  this.setState({
    [e.target.type]: e.target.value,
  })
}

希望对你有帮助

关于javascript - React 中如何区分不同的表单输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40504044/

相关文章:

javascript - 为什么实例不继承添加到没有原型(prototype)关键字的构造函数的属性

html - 跨域表单发布

javascript - 使用 HTML、CSS 和/或 Javascript 的鱼骨列表的对 Angular 级联元素和 90° 边框(类似因果图)

javascript - 将 HTML(用户定义的指令)插入 View - AngularJS

javascript - 使用 Material 表库时如何更改删除过滤器图标?

html - Mozilla Firefox 默认字体大小

javascript - 通过html表单POST在PHP中形成数组和/或列表,该表单包含未知数量的值,这些值最初由JavaScript排列

php - 将多页 php 表单转换为一页表单

javascript - 在 Angular 中访问没有表单的输入的 $pristine 属性?

javascript - 使用域\用户名对 REST 进行 Internet Explorer 身份验证