99% of the time I would use XMLHttpRequest or fetch for something like this. However, there’s an alternative solution which doesn’t require javascript…
You could include a hidden iframe on your page and set the target attribute of your form to point to that iframe.
<style>
.hide { position:absolute; top:-1px; left:-1px; width:1px; height:1px; }
</style>
<iframe name="hiddenFrame" class="hide"></iframe>
<form action="receiver.pl" method="post" target="hiddenFrame">
<input name="signed" type="checkbox">
<input value="Save" type="submit">
</form>
There are very few scenarios where I would choose this route. Generally handling it with javascript is better because, with javascript you can…
- gracefully handle errors (e.g. retry)
- provide UI indicators (e.g. loading, processing, success, failure)
- run logic before the request is sent, or run logic after the response is received.