在提交表单时,我尝试使用doSomething()
而不是默认的post行为。
显然是在React中,但是,当我尝试以下代码时,onSubmit is a supported event for forms.:
var OnSubmitTest = React.createClass({
render: function() {
doSomething = function(){
alert('it works!');
}
return <form onSubmit={doSomething}>
<button>Click me</button>
</form>;
}
});
运行doSomething()
方法,但此后仍会执行默认的post行为。
您可以在我的jsfiddle中进行测试。
我的问题是:如何防止默认的post行为?
发布于 2015-02-12 22:03:18
在您的doSomething()
函数中,传入事件e
并使用e.preventDefault()
。
doSomething = function (e) {
alert('it works!');
e.preventDefault();
}
发布于 2015-02-12 23:04:09
我还建议将事件处理程序移到render之外。
var OnSubmitTest = React.createClass({
submit: function(e){
e.preventDefault();
alert('it works!');
}
render: function() {
return (
<form onSubmit={this.submit}>
<button>Click me</button>
</form>
);
}
});
发布于 2017-06-01 17:55:41
<form onSubmit={(e) => {this.doSomething(); e.preventDefault();}}></form>
它对我来说很好
https://stackoverflow.com/questions/28479239
复制相似问题