我想在点击链接后提交一个React表单。
为此,如果单击链接,我需要以编程方式提交表单。
我的问题是:onSubmit提交表单后,处理程序没有被解雇。
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
我成功了。单击后触发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