javascript - 如何制作输入框

标签 javascript reactjs forms

我想制作一个“编辑个人资料页面”,我为此制作了表单,并请求服务器向我提供有关用户的所有信息。问题是该字段显示了有关用户的正确数据,但我无法修改数据来更新用户。

这就是输入的样子。

   </div> <div className="form-group"
   <label htmlFor="password">Gender</label>
   <input value={this.state.gender} 
           type="text" 
           name="gendre" 
           onChange={this.onChange} 
           className="form-control"  
           placeholder ={ this.props.gender} />
   </div>

onChange函数是这样的:

onChange = e =>
        this.setState({
          data: { ...this.state.data, [e.target.name]: e.target.value }

        });
state = {
       data: {
         username:this.props.usernameProfile,
         age:'',
         gendre:'',
         location:'',
         zipcode:'',
         faculty:'',
         yearOfFaculty:'',
         userID: this.props.userid



       },
       loading: false,
       errors: {}
     };

在性别输入中,它显示“男”(这来自服务器),但如果我想更改它不会让我。

我也尝试写 value={this.state.gender} -> placeholder={this.state.gender} 这样,我可以更改值,但例如,如果我不想更改它,程序会将其保存为 null。

最佳答案

将性别从 Prop 设置为状态。输入值与 props 中的值不同,因为它在 state 中设置为 ''

state = {
 ...
 data: { gendre: this.props.gendre ...},
 ...
}

并将您的输入更改为

<input value={this.state.data.gender} 

关于javascript - 如何制作输入框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56610240/

相关文章:

java - IE 将 JAX-RS Web 服务的字符串响应视为文件

javascript - Firefox 选择文本范围

javascript - 当组件聚焦/散焦时启用/禁用按键监听器

php - HTML 表单中的 TAB 按钮

html - 如何将分组输入与对齐表单结合起来?

javascript - 具有 ng-model 依赖性的孤立范围陷阱

javascript - 保持窗口隐藏直到初始化完成

javascript - React Native packager.js 错误导致开发服务器崩溃?

javascript - react 中的单选按钮

php - php 中每个用户有 2 个 radio 的表单