Skip to content
Closed
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 89 additions & 25 deletions Form-Controls/index.html
Original file line number Diff line number Diff line change
@@ -1,27 +1,91 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>My form exercise</title>
<meta name="description" content="" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<header>
<h1>Product Pick</h1>
</header>
<main>
<form>
<!-- write your html here-->
<!--
try writing out the requirements first as comments
this will also help you fill in your PR message later-->
</form>
</main>
<footer>
<!-- change to your name-->
<h2>By HOMEWORK SOLUTION</h2>
</footer>
</body>
</html>

<head>
<meta charset="UTF-8">
<title>T-Shirt Order</title>
</head>

<body>

<form id="tshirtForm">
<label>
Full Name:
<input type="text" id="name" name="name" required>
</label>
<br><br>

<label>
Email:
<input type="email" id="email" name="email" required>
</label>
<br><br>

<label>
T-shirt Colour:
<select id="colour" name="colour" required>
<option value="" disabled selected>Select a colour</option>
<option value="red">Red</option>
<option value="blue">Blue</option>
<option value="black">Black</option>
</select>
</label>
<br><br>

<fieldset>
<legend>T-shirt Size</legend>
<label><input type="radio" name="size" value="XS" required> XS</label><br>
<label><input type="radio" name="size" value="S" required> S</label><br>
<label><input type="radio" name="size" value="M" required> M</label><br>
<label><input type="radio" name="size" value="L" required> L</label><br>
<label><input type="radio" name="size" value="XL" required> XL</label><br>
<label><input type="radio" name="size" value="XXL" required> XXL</label>
</fieldset>

<br>
<button type="submit">Submit</button>
</form>

<script>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you review the exercise instructions? I believe there shouldn't be any javascript in the file.

document.getElementById("tshirtForm").addEventListener("submit", function (event) {
event.preventDefault();

const name = document.getElementById("name").value.trim();
const email = document.getElementById("email").value.trim();
const colour = document.getElementById("colour").value;
const size = document.querySelector('input[name="size"]:checked');

const namePattern = /^[A-Za-z\s]{2,}$/; //I added this to validate names to accept only letter and spaces
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; // Basic email pattern validation

if (!namePattern.test(name)) {
alert("Please enter a valid name (letters and spaces only).");
return;
}

if (!emailPattern.test(email)) {
alert("Please enter a valid email address.");
return;
}

if (colour === "") {
alert("Please select a t-shirt colour.");
return;
}

if (!size) {
alert("Please select a t-shirt size.");
return;
}

alert("Order details are valid!");
});
</script>

<footer>
<h2>By Shuheda Begum</h2>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The <h2> tag in the footer suggests a major section heading. Footer typically has smaller headings or <p> tags.

</footer>

</body>

</html>