在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>; } });