Установка onSubmit в React.js
при подаче формы, я пытаюсь doSomething() вместо поведения по умолчанию post.
видимо, реагировать, onSubmit-это поддерживаемое событие для форм. однако, когда я пытаюсь следующий код:
var OnSubmitTest = React.createClass({
render: function() {
doSomething = function(){
alert('it works!');
}
return <form onSubmit={doSomething}>
<button>Click me</button>
</form>;
}
});
метод doSomething() выполняется, но после этого поведение по умолчанию post все еще выполняется.
вы можете проверить это в моем jsfiddle.
мой вопрос: как предотвратить сообщение по умолчанию поведение?
4 ответов:
Я бы также предложил переместить обработчик событий за пределы рендеринга.
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>он отлично работает для меня
вы можете передать событие в качестве аргумента функции, а затем предотвратить поведение по умолчанию.
var OnSubmitTest = React.createClass({ render: function() { doSomething = function(event){ event.preventDefault(); alert('it works!'); } return <form onSubmit={this.doSomething}> <button>Click me</button> </form>; } });
Comments