I’ve tried it a few different ways based on searches I’ve done on the subject and for some reason I can’t get it to work. I just want my text inputs and textarea to clear after I hit the submit button.
Here’s the code.
<div id="sidebar-info">
<form name="contact-form" action="formprocess.php" method="post" target="ninja-frame">
<h1>By Phone</h1>
<p id="by-phone">XXX-XXX-XXXX</p>
<h1>By Email</h1>
<p id="form-row">Name</p>
<input name="name" id="name" type="text" class="user-input" value="">
<p id="form-row">Email</p>
<input name="email" id="email" type="text" class="user-input" value="">
<p id="form-row">Message</p>
<textarea name="message" id="message" class="user-input" rows="10" maxlength="1500"></textarea>
<p>*Please fill out every field</p>
<input type="submit" value="Submit" id="submit" onclick="submitForm()">
<script>
function submitForm() {
document.contact-form.submit();
document.contact-form.reset();
}
</script>
</form>
</div>
Your form is being submitted already as your button is type
submit. Which in most browsers would result in a form submission and loading of the server response rather than executing javascript on the page.Change the type of the submit button to a
button. Also, as this button is given the idsubmit, it will cause a conflict with Javascript’s submit function. Change the id of this button. Try something likeAnother issue in this instance is that the name of the form contains a
-dash. However, Javascript translates-as a minus.You will need to either use array based notation or use
document.getElementById()/document.getElementsByName(). ThegetElementById()function returns the element instance directly as Id is unique (but it requires an Id to be set). ThegetElementsByName()returns an array of values that have the same name. In this instance as we have not set an id, we can use thegetElementsByNamewith index 0.Try the following