-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
79 lines (69 loc) · 2.19 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
document.addEventListener('DOMContentLoaded', () => {
let household = [],
form = document.getElementsByTagName('form')[0],
debug = document.querySelector('.debug'),
ageInput = document.getElementsByName('age')[0],
relationshipInput = document.getElementsByName('rel')[0],
smokerInput = document.getElementsByName('smoker')[0],
householdList = document.getElementsByClassName('household')[0];
//force number > 0 entry on age input
ageInput.setAttribute('min', 1);
ageInput.setAttribute('type', 'number');
form.setAttribute('novalidate', '');
//set add click event
document.getElementsByClassName('add')[0].addEventListener(
'click',
e => {
add();
e.preventDefault();
});
householdList.addEventListener('click', function(e) {
e.preventDefault();
e.target.classList.contains('remove') ? remove(e.target.id) : '';
});
//set submit button event
document.querySelector('button[type="submit"]').addEventListener(
'click',
e => {
submit();
e.preventDefault();
});
function add() {
if (!parseInt(ageInput.value) || parseInt(ageInput.value) < 1) {
alert('Please enter a number greater than 0');
} else if (relationshipInput.selectedIndex === 0) {
alert('Please select a relationship');
} else {
console.log("smoker", smokerInput.checked);
household.push({
relationship: relationshipInput.value,
age: parseInt(ageInput.value),
smoker: smokerInput.checked ? 'smoker' : 'non-smoker'
});
updateList();
form.reset();
}
}
function remove(id) {
household.splice(id, 1);
updateList();
}
function submit() {
debug.innerHTML = JSON.stringify(household);
debug.style.display = 'inline-block';
debug.style.width = '90%';
debug.style.margin = 'auto 0';
debug.style['white-space'] = 'normal';
}
function updateList() {
householdList.innerHTML = '';
household.forEach((value, index) => {
const member = Object.values(value).join(', ');
console.log('index', index);
householdList.innerHTML += `<li>
${member}
<button class="remove" id="${index}">Remove</button>
</li>`;
});
}
});