Create first version

This commit is contained in:
Elnu 2022-03-25 14:31:19 -07:00
parent 90a3a8c0ff
commit ab48d61c58
6 changed files with 1021 additions and 1 deletions

40
demo/form.js Normal file
View file

@ -0,0 +1,40 @@
window.onload = () => {
form = document.querySelector("form");
submit = document.querySelector("input[type=submit]");
const submitText = submit.value;
form.addEventListener("submit", (event) => {
event.preventDefault();
var data = "";
for (var i = 0; i < form.children.length; i++) {
const element = form.children[i];
if (i > 0) {
data += "&";
}
if (element.hasAttribute("name")) {
data += `${element.name}=${element.value}`;
}
}
const http = new XMLHttpRequest();
http.open("POST", "http://127.0.0.1:8080", true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.onreadystatechange = () => {
if (http.readyState == 4 && http.status == 200) {
form.reset();
resetSubmit();
clearTimeout(failTimeout);
alert("Form submitted successfully");
}
}
http.send(data);
submit.disabled = true;
submit.value = "Sending...";
const resetSubmit = () => {
submit.disabled = false;
submit.value = submitText;
};
const failTimeout = setTimeout(() => {
resetSubmit();
alert("Form submission failed")
}, 5000);
});
};

24
demo/index.html Normal file
View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Demo mailer form</title>
<script src="form.js"></script>
</head>
<body>
<form>
<label for="name">Name:</label>
<input type="text" name="name" id="name" required>
<br>
<label for="email" required>Email:</label>
<input type="email" name="email" id="email" required>
<br>
<label for="body" required>Message:</label><br>
<textarea name="body" id="body" cols="30" rows="10" required></textarea>
<br>
<input type="submit" value="Send">
</form>
</body>
</html>