JSFiddle - React, Tailwind, and code Playground
HTML
<html>
<head>
<script>
document.addEventListener("DOMContentLoaded", function() {
var darkMode = document.createElement('style');
darkMode.innerHTML = 'body { background-color: #2e2e2e; color: #f2f2f2; }';
document.head.appendChild(darkMode);
var form = document.createElement('form');
form.innerHTML = '<input type="text" name="name" placeholder="Name" required><br>' +
'<input type="email" name="email" placeholder="Email" required><br>' +
'<input type="text" name="country" placeholder="Country Code" required><br>' +
'<input type="tel" name="phone" placeholder="Phone" required><br>' +
'<input type="checkbox" name="terms" required> I agree with terms and conditions<br>' +
'<input type="submit" value="Submit">';
document.body.appendChild(form);
var upload = document.createElement('input');
upload.type = 'file';
upload.name = 'upload';
upload.multiple = true;
form.insertBefore(upload, form.firstChild);
form.onsubmit = function(e) {
e.preventDefault();
var name = form.name.value;
var email = form.email.value;
var country = form.country.value;
var phone = form.phone.value;
var terms = form.terms.checked;
var upload = form.upload.files;
var error = document.createElement('div');
error.style.color = 'red';
if (!name || !email || !country || !phone || !terms || !upload) {
error.innerHTML = 'Please fill out all fields.';
form.appendChild(error);
} else if (isNaN(name)) {
error.innerHTML = 'Name cannot be a number.';
form.appendChild(error);
} else if (upload.length > 0) {
for (var i = 0; i < upload.length; i++) {
if (upload[i].type.indexOf('image') > -1) {
error.innerHTML = 'Images are not allowed.';
form.appendChild(error);
break;
} else if (upload[i].type.indexOf('exe') > -1) {
error.innerHTML = 'EXE files are not allowed.';
form.appendChild(error);
break;
}
}
} else {
error.innerHTML = 'Form submitted successfully.';
...