Skip to content

Commit 816e370

Browse files
Balashov NikitaOlegLustenko
authored andcommitted
classwork-20
1 parent d41b157 commit 816e370

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Class work 20</title>
6+
</head>
7+
<body>
8+
<pre id="test"></pre>
9+
<button>server request</button>
10+
11+
<form>
12+
<input id="fn" name="fullName" type="text" placeholder="FULL NAME">
13+
<input id="em" name="email" type="text" placeholder="EMAIL">
14+
<button type="submit" class="add">add user</button>
15+
</form>
16+
17+
<script src="src/main.js"></script>
18+
</body>
19+
</html>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
const btn = document.querySelector('button');
2+
const add = document.querySelector('.add');
3+
const test = document.querySelector('#test');
4+
5+
const url = 'http://easycode-js.herokuapp.com/qwerty12341';
6+
7+
const serverRequest = () => {
8+
const xhr = new XMLHttpRequest();
9+
xhr.onreadystatechange = () => {
10+
if(xhr.readyState === 4) {
11+
test.innerHTML += xhr.responseText + '\n';
12+
}
13+
}
14+
15+
xhr.open('GET', url, true);
16+
xhr.send();
17+
}
18+
19+
btn.addEventListener('click', () => {
20+
serverRequest();
21+
})
22+
23+
const serverAddUser = (usreProps) => {
24+
const xhr = new XMLHttpRequest();
25+
xhr.onreadystatechange = () => {
26+
if(xhr.readyState === 4) {
27+
test.innerHTML += xhr.responseText + '\n';
28+
}
29+
}
30+
31+
xhr.open('POST', `${url}/users`, true);
32+
xhr.setRequestHeader('Content-type', 'application/json');
33+
xhr.send(JSON.stringify(usreProps));
34+
}
35+
36+
const form = document.querySelector('form');
37+
38+
form.addEventListener('submit', (e) => {
39+
e.preventDefault();
40+
const inputs = [...form.elements].filter(elem => elem.tagName === "INPUT");
41+
let passedValid = true;
42+
const user = {};
43+
44+
inputs.forEach(input => {
45+
if(!input.value) {
46+
passedValid = false;
47+
alert(`404 ${input.name}`)
48+
return;
49+
}
50+
51+
user[input.name] = input.value;
52+
})
53+
54+
if(passedValid) {serverAddUser(user);}
55+
56+
})

0 commit comments

Comments
 (0)