小编典典

React.js:以编程方式提交表单不会触发onSubmit事件

reactjs

我想在点击链接后提交一个React表单。

为此,如果单击链接,我需要以编程方式提交表单。

我的问题是:onSubmit提交表单后,处理程序没有被解雇。

这是我为此目的编写的代码片段:

var MyForm = React.createClass({
  handleSubmit: function(e){
    console.log('Form submited');
     e.preventDefault();
  },
  submitForm : function(e){
    this.refs.formToSubmit.submit();
  },
  render: function() {
    return (
    <form ref="formToSubmit" onSubmit={this.handleSubmit}>
    <input name='myInput'/>
    <a onClick={this.submitForm}>Validate</a>
    </form>);
  }
});

ReactDOM.render(
  <MyForm name="World" />,
  document.getElementById('container')
);

handleSubmit不调用并执行默认行为(提交表格)。这是ReactJs错误还是正常行为?有没有一种方法可以调用onSubmit处理程序?


阅读 439

收藏
2020-07-22

共1个答案

小编典典

我成功了。单击后触发handleSubmit。希望这可以帮助。

<form
  onSubmit={this.handleSubmit}
  ref={ (ref) => { this.form = ref; } }
>
    <a onClick={ () => { this.form.dispatchEvent(new Event('submit')) } }>
        Validate
    </a>
</form>

从这里找到:https :
//github.com/facebook/react/issues/6796

2020-07-22