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