HTML Live Preview
Runs HTML, CSS, and JavaScript live in a secure sandbox with a console.
Build an HTML form field by field and copy clean, accessible markup. Every input gets a real label, a name, and the validation attributes you choose.
Options are for dropdowns and radio buttons, separated by commas. For a hidden field, the placeholder is its value.
<div> with a <label for> that points to the input's id, so clicking the label focuses the field and screen readers announce it.name is what the server receives. If you leave it empty, it is made from the label: Email address becomes email_address.<fieldset> with a <legend>.required attribute, so the browser checks the field before sending. Email, URL, and number fields get built-in format checks from their type.enctype="multipart/form-data" and the method to POST, which file uploads need.A contact form with a required email field and a message:
<form action="/contact" method="post">
<div>
<label for="email">Email</label>
<input type="email" id="email" name="email" required>
</div>
<div>
<label for="message">Message</label>
<textarea id="message" name="message" rows="5"></textarea>
</div>
<button type="submit">Send</button>
</form>
Screen readers read the label when a field gets focus, and a click on the label focuses the field. Placeholder text disappears as soon as you type, so it can't replace a label.
Use POST for anything that changes data or includes personal details or files. Use GET for searches and filters, where the values belong in the URL.
To the Action URL you set, when a visitor submits it. The generator itself sends nothing.
Yes. The markup is plain HTML without inline styles, so add a class to the <form> and style it in your CSS.
Often used together with HTML Form Generator.
Runs HTML, CSS, and JavaScript live in a secure sandbox with a console.
Beautifies HTML with consistent indentation, including inline CSS and JavaScript.
Checks card number format: Luhn checksum, brand, and length.