Skip to content

Commit 7bbfe29

Browse files
committed
Adding form validation to group page
1 parent 3283487 commit 7bbfe29

File tree

2 files changed

+44
-10
lines changed

2 files changed

+44
-10
lines changed

src/_includes/components/codepens/group-spec.html

Lines changed: 43 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,50 @@
1616
var received_ts = new Date(received);
1717
var received_iso = received_ts.toISOString();
1818

19+
var errors = [];
20+
1921
// Add regular expression check for number of employees
2022
var employeesRegex = /^[0-9]+$/;
2123
if (!employeesRegex.test(employees)) {
22-
alert("Please enter only numbers in the Employees field");
23-
return;
24-
}
24+
const employeesError = document.getElementById("employees-error");
25+
employeesError.style.display = "block";
26+
const employeesField = document.getElementById("employees");
27+
employeesField.style.outline = "2px solid red";
28+
errors.push("Employees is invalid");
29+
} else {
30+
const employeesError = document.getElementById("employees-error");
31+
employeesError.style.display = "none";
32+
const employeesField = document.getElementById("employees");
33+
employeesField.style.outline = "";
34+
}
35+
2536

2637
// Add regular expression check for total billed
2738
var billedRegex = /^[0-9]+$/;
2839
if (!billedRegex.test(totalBilled)) {
29-
alert("Please enter only numbers in the Total Billed field");
30-
return;
31-
}
40+
billedError = document.getElementById("billed-error");
41+
billedError.style.display = "block";
42+
totalBilled = document.getElementById("totalBilled");
43+
totalBilled.style.outline = "2px solid red";
44+
errors.push("Total Billed is invalid");
45+
} else {
46+
const billedError = document.getElementById("billed-error");
47+
billedError.style.display = "none";
48+
const totalBilled = document.getElementById("totalBilled");
49+
totalBilled.style.outline = "";
50+
}
3251

33-
var output = `{
52+
if (errors.length > 0) {
53+
// Display all the errors and highlight the respective fields
54+
const errorDiv = document.getElementById("errors");
55+
errorDiv.innerHTML = "";
56+
errors.forEach(function(error) {
57+
errorDiv.innerHTML += "<p>" + error + "</p>";
58+
});
59+
return false;
60+
}
61+
62+
var output = `{
3463
"anonymousId": "507f191e810c19729de860ea",
3564
"channel": "browser",
3665
"context": {
@@ -59,10 +88,13 @@
5988
"version": "1.1"
6089
}`;
6190

91+
var output_container = document.getElementById("output_container");
6292
output_container.innerHTML = output;
6393
Prism.highlightElement(output_container);
64-
}
65-
</script>
94+
return true;
95+
}
96+
97+
</script>
6698

6799
<script>
68100
function showOutput() {
@@ -86,10 +118,12 @@ <h3> Sample Group call</h3>
86118
<input type="text" id="industry" value="Beauty">
87119
<label for="employees">Employees:</label>
88120
<input type="text" id="employees" value="200">
121+
<span class="error-message" id="employees-error">Please enter a valid number of employees.</span>
89122
<label for="plan">Plan:</label>
90123
<input type="text" id="plan" value="Premium">
91124
<label for="totalBilled">Total Billed:</label>
92125
<input type="text" id="totalBilled" value="34000">
126+
<span class="error-message" id="billed-error">Please enter only numbers in the Total Billed field.</span>
93127
<input type="submit" class="button button-hollow" id="submit" onclick="showMessage(); showOutput()"
94128
value="See a sample group call">
95129
</div>

src/_sass/components/_sample-form.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
.sample-form {
2727
display: grid;
2828
grid-template-columns: 50px 1fr;
29-
grid-gap: 6px;
29+
grid-gap: 16px;
3030
margin-top: 6px;
3131
align-items: center;
3232

0 commit comments

Comments
 (0)