On submission of a form, I'm trying to doSomething()
instead of the default post behaviour.
Apparently in React, onSubmit is a supported event for forms. However, when I try the following code:
var OnSubmitTest = React.createClass({ render: function() { doSomething = function(){ alert('it works!'); } return <form onSubmit={doSomething}> <button>Click me</button> </form>; } });
The method doSomething()
is run, but thereafter, the default post behaviour is still carried out.
You can test this in my jsfiddle.
My question: How do I prevent the default post behaviour?
To update a React input text field with the value on onBlur event, we can set the onBlur prop of the input to a function that does something with the input value. We defined the inputValue state with the useState hook. Then we set the value prop of the input to inputValue .
Handling Forms In HTML, form data is usually handled by the DOM. In React, form data is usually handled by the components. When the data is handled by the components, all the data is stored in the component state. You can control changes by adding event handlers in the onChange attribute.
In your doSomething()
function, pass in the event e
and use e.preventDefault()
.
doSomething = function (e) { alert('it works!'); e.preventDefault(); }
I'd also suggest moving the event handler outside 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> ); } });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With