Luc*_*oit 88 javascript forms form-submit onsubmit reactjs
提交表单时,我正在尝试doSomething()
代替默认的帖子行为.
显然在React中,onSubmit是表单支持的事件.但是,当我尝试以下代码时:
var OnSubmitTest = React.createClass({
render: function() {
doSomething = function(){
alert('it works!');
}
return <form onSubmit={doSomething}>
<button>Click me</button>
</form>;
}
});
Run Code Online (Sandbox Code Playgroud)
该方法doSomething()
运行,但此后,仍然执行默认的后期行为.
你可以在我的jsfiddle中测试这个.
我的问题:如何防止默认的帖子行为?
Hen*_*son 104
在您的doSomething()
函数中,传递事件e
并使用e.preventDefault()
.
doSomething = function (e) {
alert('it works!');
e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
Ada*_*one 44
我还建议将事件处理程序移到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>
);
}
});
Run Code Online (Sandbox Code Playgroud)
Tru*_*ong 12
<form onSubmit={(e) => {this.doSomething(); e.preventDefault();}}></form>
Run Code Online (Sandbox Code Playgroud)
它对我来说很好
您可以将事件作为参数传递给函数,然后阻止默认行为。
var OnSubmitTest = React.createClass({
render: function() {
doSomething = function(event){
event.preventDefault();
alert('it works!');
}
return <form onSubmit={this.doSomething}>
<button>Click me</button>
</form>;
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
115289 次 |
最近记录: |