I have a multistep form. I’m validating each step with Javascript before submitting it to PHP.
If the form’s last step passes validation tests. I’m submitting the form. like so
JavaScript
x
$(UISelectors.addListForm)[0].submit();
I want to handle form submission with Javascript and submit it to PHP with Ajax. but instead, the page refreshes.
JavaScript
const addListingSubmit = (e) => {
e.preventDefault();
// ...
};
$(UISelectors.addListForm).submit(addListingSubmit);
Any suggestions?
Here is my code: https://jsfiddle.net/cd1mkuge/1/
Advertisement
Answer
An HTML form natively calls a defined url (for which the code is missing in your question) when it is submitted, and thus will leave the current page. To avoid this behaviour use a click handler (on the form’s submit button) instead, and do your ajax call in there with the form’s values:
JavaScript
const onClick = e => {
// get values from the form
const foo = $("#foo-field").val();
// etc.
// do AJAX call
$.post( )
};
$('#my-button').click(onClick);
This way, the form’s submit event is never triggered.