1
+ <!DOCTYPE html>
2
+ < html >
3
+ < head >
4
+ < title > To Do List</ title >
5
+ < style >
6
+ .remove-button {
7
+ margin-left : 10px ;
8
+ }
9
+ </ style >
10
+ </ head >
11
+ < body >
12
+ < div >
13
+ < form onsubmit ="return formSubmit() " id ="myform ">
14
+ < input type ="text " id ="input " name ="name " placeholder ="Enter a task name " required />
15
+ < br />
16
+ < textarea name ="description "> </ textarea >
17
+ < br />
18
+
19
+ < input type ="submit " value ="Add Task " />
20
+ </ form >
21
+
22
+ <!-- <input type="text" id="input" placeholder="Enter a task name" />
23
+ <button onclick="addTask()">Add Task</button> -->
24
+ </ div >
25
+ < ul id ="tasks ">
26
+ </ ul >
27
+ < script >
28
+ function formSubmit ( ) {
29
+ let form = document . getElementById ( "myform" ) ;
30
+ let submitter = form . querySelector ( "input[type=submit]" ) ;
31
+ let formData = new FormData ( form ) ;
32
+
33
+ let taskName = formData . get ( "name" ) ;
34
+ let taskDesc = formData . get ( "description" ) ;
35
+
36
+ console . log ( taskName , taskDesc ) ;
37
+ insertTask ( taskName , taskDesc ) ;
38
+
39
+ return false ;
40
+ }
41
+
42
+ function addTask ( ) {
43
+ let input = document . getElementById ( 'input' ) ;
44
+ let task = input . value ;
45
+
46
+ let tasks = document . querySelector ( '#tasks' ) ;
47
+
48
+ let new_task = document . createElement ( 'li' ) ;
49
+ new_task . innerText = task ;
50
+
51
+ insertTask ( task ) ;
52
+ }
53
+
54
+ var tasksData = [ ] ;
55
+ var taskDescs = { } ;
56
+
57
+ function showTasks ( ) {
58
+ let tasks = document . querySelector ( '#tasks' ) ;
59
+ tasks . innerHTML = '' ;
60
+
61
+ for ( let i = 0 ; i < tasksData . length ; i ++ ) {
62
+ let taskText = tasksData [ i ] ;
63
+
64
+ let new_task = document . createElement ( 'li' ) ;
65
+ // new_task.innerText = tasksData[i];
66
+
67
+ let task_text = document . createTextNode ( taskText ) ;
68
+ let task_desc_text = document . createTextNode ( taskDescs [ taskText ] ) ;
69
+ let remove_button = document . createElement ( 'button' ) ;
70
+
71
+ remove_button . innerText = 'X' ;
72
+ remove_button . className = 'remove-button' ;
73
+ remove_button . onclick = function ( ) {
74
+ removeTask ( taskText ) ;
75
+ } ;
76
+
77
+ new_task . appendChild ( task_text ) ;
78
+ new_task . appendChild ( task_desc_text ) ;
79
+ new_task . appendChild ( remove_button ) ;
80
+
81
+ tasks . appendChild ( new_task ) ;
82
+ }
83
+ }
84
+
85
+ function insertTask ( task , description ) {
86
+ // only insert if task is not already in the list
87
+ if ( tasksData . includes ( task ) ) {
88
+ return ;
89
+ }
90
+
91
+ tasksData . push ( task ) ;
92
+ taskDescs [ task ] = description ;
93
+
94
+ showTasks ( ) ;
95
+ }
96
+
97
+ function removeTask ( task ) {
98
+ let newTasksData = tasksData . filter ( ( t ) => t !== task ) ;
99
+ tasksData = newTasksData ;
100
+
101
+ showTasks ( ) ;
102
+ }
103
+ </ script >
104
+ </ body >
105
+ </ html >
0 commit comments