代码之家  ›  专栏  ›  技术社区  ›  abu abu

onSubmit()在react.js中不工作

  •  1
  • abu abu  · 技术社区  · 6 年前

    我有一个 form 像下面

    <form className="ui form" onSubmit={this.update}>
         <input type="text" defaultValue={this.props.element} onChange={this.handleChange1}/>
         <input type="button" value="Update" className="ui positive icon button"/>
     </form>
    

    我的更新功能如下

    update = event => {
       console.log('hello');
       event.preventDefault();  
    }
    

    但它不起作用。

    2 回复  |  直到 6 年前
        1
  •  5
  •   Tholle    6 年前

    提交按钮的类型不应为 button 但类型 submit .

    例子

    class App extends React.Component {
      update = event => {
        console.log("hello");
        event.preventDefault();
      };
    
      render() {
        return (
          <form className="ui form" onSubmit={this.update}>
            <input
              type="text"
              defaultValue={this.props.element}
              onChange={this.handleChange1}
            />
            <input
              type="submit"
              value="Update"
              className="ui positive icon button"
            />
          </form>
        );
      }
    }
    
    ReactDOM.render(<App />, document.getElementById("root"));
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
    
    <div id="root"></div>
        2
  •  2
  •   stackoverfloweth    6 年前

    你的按钮应该是 type='submit'