javascript - 如果数据更改,则使按钮处于事件状态

标签 javascript reactjs

如果输入字段的值已经存在,如何跟踪更改。可能需要使按钮处于事件状态

class NameForm extends React.Component {
  constructor(props) {
    super(props);
    this.state = {value: ''};

    this.handleChange = this.handleChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

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

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <label>
          Name:
          <input type="text" value="John" />
        </label>
        <input type="submit" value="send" />
      </form>
    );
  }
}

最佳答案

不要定义像 value="John" 这样的值,因为它不是动态的。你将无法改变。因此最好在状态中定义默认值,如下所示 - this.state = {name: 'John'}.

class NameForm extends React.Component {
  constructor(props) {
    super(props);
    this.state = {name: 'John', isChanged: false };

    this.handleChange = this.handleChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleChange(event) {
    this.setState({name: event.target.value, isChanged: true});
  }
  handleSubmit=e=>{
    e.preventDefault();
    console.log(this.state)
  }
  render() {
    const {name, isChanged} = this.state;
    return (
      <form onSubmit={this.handleSubmit}>
        <label>
          Name:
          <input type="text" value={name} onChange={this.handleChange}/>
        </label>
        { isChanged && <input type="submit" value="send" /> }
      </form>
    );
  }
}

提交后隐藏提交按钮-https://codesandbox.io/s/form-t00t4

编辑:在ischanged中保留输入是否被触摸的状态。

关于javascript - 如果数据更改,则使按钮处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59978821/

相关文章:

javascript - 使用 parse 注册将不起作用。未知错误

javascript - jquery从select onchange计算多字段数量价格和总计

javascript - 从angerouslySetInnerHtml内容调用React类函数

javascript - React-Native:后退按钮设置保留在所有组件上

javascript - 重新渲染时 react 容器未被移除

javascript - 在React的useEffect()中获取数据返回 "undefined"

javascript - JavaScript 字符串的安全长度是多少?

javascript - 使用 jquery 验证插件,如何在文本框上添加正则表达式验证?

javascript - jQuery animate - 扩展正确的文本内容?

forms - 如何为复杂的 React 表单实现数据绑定(bind)