javascript - React.js : submit form programmatically does not trigger onSubmit event

标签 javascript reactjs forms onsubmit

我想在点击链接后提交 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 处理程序?

最佳答案

我在这方面取得了成功。这会在单击时触发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

关于javascript - React.js : submit form programmatically does not trigger onSubmit event,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37901223/

相关文章:

javascript - 如何在不在 HTML 中对元素进行硬编码的情况下向元素添加属性?

node.js - POST 请求 ReactJS 后列表项未呈现

javascript - 如何将语义 UI 与 React 和 Express 结合使用?

Javascript |按钮未使用 .innerHTML 提交表单

javascript - 如何使用 Android 搜索查询(从操作栏中的搜索框)加载最后带有查询的指定 URL?

javascript - 为什么我隐藏侧边栏的 Greasemonkey JQuery 脚本在 Stack Exchange 网站上有效,但在 Stack Overflow 上无效?

javascript - 如何从 jquery ajax 调用中获取 js 中的 json 字符串?

javascript - 如何使用函数和文本映射 ReactJs

javascript - 无法获取react-hook-form来正确验证电子邮件

javascript - 将表单提交到新的自定义大小窗口