在React.js中设置提交

在提交表单时,我正在尝试执行doSomething()而不是默认的发布行为。

显然,在React中, onSubmit是表单支持的事件。 但是,当我尝试下面的代码:

 var OnSubmitTest = React.createClass({ render: function() { doSomething = function(){ alert('it works!'); } return <form onSubmit={doSomething}> <button>Click me</button> </form>; } }); 

方法doSomething()运行,但此后,默认的后期行为仍然执行。

你可以在我的jsfiddle中testing这个。

我的问题:如何防止默认的发布行为?

doSomething()函数中,传入事件e并使用e.preventDefault()

 doSomething = function (e) { alert('it works!'); e.preventDefault(); } 

我也build议在渲染之外移动事件处理程序。

 var OnSubmitTest = React.createClass({ submit: function(e){ e.preventDefault(); alert('it works!'); } render: function() { return ( <form onSubmit={this.submit}> <button>Click me</button> </form> ); } }); 
 <form onSubmit={(e) => {this.doSomething(); e.preventDefault();}}></form> 

它对我来说工作得很好

您可以将该事件作为parameter passing给函数,然后阻止默认行为。

 var OnSubmitTest = React.createClass({ render: function() { doSomething = function(event){ event.preventDefault(); alert('it works!'); } return <form onSubmit={this.doSomething}> <button>Click me</button> </form>; } });