Created
March 9, 2023 08:30
-
-
Save aash-gates/a769af4869f776cacb07c3e56ee16314 to your computer and use it in GitHub Desktop.
Basic Contact Form with Javascript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- | |
======================================================================= | |
This is a working contact form. To receive email, | |
Replace YOUR_ACCESS_KEY_HERE with your actual Access Key. | |
Create Access Key here 👉 https://web3forms.com/ | |
======================================================================= | |
--> | |
<div class="flex items-center min-h-screen bg-gray-50 dark:bg-gray-900"> | |
<div class="container mx-auto"> | |
<div class="max-w-md mx-auto my-10 bg-white p-5 rounded-md shadow-sm"> | |
<div class="text-center"> | |
<h1 class="my-3 text-3xl font-semibold text-gray-700 dark:text-gray-200"> | |
Contact Us | |
</h1> | |
<p class="text-gray-400 dark:text-gray-400"> | |
Fill up the form below to send us a message. | |
</p> | |
</div> | |
<div class="m-7"> | |
<form action="https://api.web3forms.com/submit" method="POST" id="form"> | |
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE" /> | |
<input type="hidden" name="subject" value="New Submission from Web3Forms" /> | |
<input type="checkbox" name="botcheck" id="" style="display: none;" /> | |
<div class="mb-6"> | |
<label for="name" class="block mb-2 text-sm text-gray-600 dark:text-gray-400">Full Name</label> | |
<input type="text" name="name" id="name" placeholder="John Doe" required class="w-full px-3 py-2 placeholder-gray-300 border border-gray-300 rounded-md focus:outline-none focus:ring focus:ring-indigo-100 focus:border-indigo-300 dark:bg-gray-700 dark:text-white dark:placeholder-gray-500 dark:border-gray-600 dark:focus:ring-gray-900 dark:focus:border-gray-500" /> | |
</div> | |
<div class="mb-6"> | |
<label for="email" class="block mb-2 text-sm text-gray-600 dark:text-gray-400">Email Address</label> | |
<input type="email" name="email" id="email" placeholder="you@company.com" required class="w-full px-3 py-2 placeholder-gray-300 border border-gray-300 rounded-md focus:outline-none focus:ring focus:ring-indigo-100 focus:border-indigo-300 dark:bg-gray-700 dark:text-white dark:placeholder-gray-500 dark:border-gray-600 dark:focus:ring-gray-900 dark:focus:border-gray-500" /> | |
</div> | |
<div class="mb-6"> | |
<label for="phone" class="text-sm text-gray-600 dark:text-gray-400">Phone Number</label> | |
<input type="text" name="phone" id="phone" placeholder="+1 (555) 1234-567" required class="w-full px-3 py-2 placeholder-gray-300 border border-gray-300 rounded-md focus:outline-none focus:ring focus:ring-indigo-100 focus:border-indigo-300 dark:bg-gray-700 dark:text-white dark:placeholder-gray-500 dark:border-gray-600 dark:focus:ring-gray-900 dark:focus:border-gray-500" /> | |
</div> | |
<div class="mb-6"> | |
<label for="message" class="block mb-2 text-sm text-gray-600 dark:text-gray-400">Your Message</label> | |
<textarea rows="5" name="message" id="message" placeholder="Your Message" class="w-full px-3 py-2 placeholder-gray-300 border border-gray-300 rounded-md focus:outline-none focus:ring focus:ring-indigo-100 focus:border-indigo-300 dark:bg-gray-700 dark:text-white dark:placeholder-gray-500 dark:border-gray-600 dark:focus:ring-gray-900 dark:focus:border-gray-500" required></textarea> | |
</div> | |
<div class="mb-6"> | |
<button type="submit" class="w-full px-3 py-4 text-white bg-indigo-500 rounded-md focus:bg-indigo-600 focus:outline-none"> | |
Send Message | |
</button> | |
</div> | |
<p class="text-base text-center text-gray-400" id="result"></p> | |
</form> | |
</div> | |
</div> | |
</div> | |
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const form = document.getElementById("form"); | |
const result = document.getElementById("result"); | |
form.addEventListener("submit", function (e) { | |
const formData = new FormData(form); | |
e.preventDefault(); | |
var object = {}; | |
formData.forEach((value, key) => { | |
object[key] = value; | |
}); | |
var json = JSON.stringify(object); | |
result.innerHTML = "Please wait..."; | |
fetch("https://api.web3forms.com/submit", { | |
method: "POST", | |
headers: { | |
"Content-Type": "application/json", | |
Accept: "application/json" | |
}, | |
body: json | |
}) | |
.then(async (response) => { | |
let json = await response.json(); | |
if (response.status == 200) { | |
result.innerHTML = json.message; | |
result.classList.remove("text-gray-500"); | |
result.classList.add("text-green-500"); | |
} else { | |
console.log(response); | |
result.innerHTML = json.message; | |
result.classList.remove("text-gray-500"); | |
result.classList.add("text-red-500"); | |
} | |
}) | |
.catch((error) => { | |
console.log(error); | |
result.innerHTML = "Something went wrong!"; | |
}) | |
.then(function () { | |
form.reset(); | |
setTimeout(() => { | |
result.style.display = "none"; | |
}, 5000); | |
}); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.0.4/tailwind.min.css" rel="stylesheet" /> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment