1
+ {{ $formId := index .Params 0 }}
2
+ < form id ="{{ $formId }} ">
3
+ < ul style ="list-style-type: none;padding-left: 0px; ">
4
+ {{ .Inner }}
5
+ </ ul >
6
+ < label for ="gcount "> ✅ = </ label >
7
+ < output name ="gcount " id ="gcount "> 0</ output > /< output name ="gtotal "> </ output > ,
8
+ < label for ="rcount "> ❌ = </ label >
9
+ < output name ="rcount " id ="rcount "> 2</ output > /< output name ="rtotal "> </ output > ,
10
+ < label for ="acount "> 🔍 = </ label >
11
+ < output name ="acount " id ="acount "> 0</ output > /< output name ="atotal "> </ output > < br />
12
+ (< label for ="xcount "> ∅ = </ label >
13
+ < output name ="xcount " id ="xcount "> 0</ output > /< output name ="xtotal "> </ output > )
14
+ </ form >
15
+ < script >
16
+ document . addEventListener ( 'DOMContentLoaded' , ( ) => {
17
+ if ( localStorage . getItem ( "{{ $formId }}" ) ) {
18
+ let choiceList = localStorage . getItem ( "{{ $formId }}" ) ;
19
+ let form = document . getElementById ( formId ) ;
20
+ let counts = { R : 0 , G : 0 , A : 0 , X :0 } ;
21
+
22
+ let listItems = form . getElementsByTagName ( "li" ) ;
23
+
24
+ for ( const [ index , elem ] of listItems . entries ( ) ) {
25
+ let menu = elem . getElementsByTagName ( "select" ) [ 0 ] ;
26
+ let mvalue = choiceList [ index ] ;
27
+ menu . value = mvalue ;
28
+
29
+ counts [ mvalue ] ++ ;
30
+ }
31
+
32
+ form . elements [ "rcount" ] . value = counts [ "R" ] ;
33
+ form . elements [ "gcount" ] . value = counts [ "G" ] ;
34
+ form . elements [ "acount" ] . value = counts [ "A" ] ;
35
+ form . elements [ "xcount" ] . value = counts [ "X" ] ;
36
+
37
+ let numClItems = listItems . length ;
38
+ form . elements [ "rtotal" ] . value = numClItems ;
39
+ form . elements [ "gtotal" ] . value = numClItems ;
40
+ form . elements [ "atotal" ] . value = numClItems ;
41
+ form . elements [ "xtotal" ] . value = numClItems ;
42
+ }
43
+
44
+ clChange ( "{{ $formId }}" ) ;
45
+ } ) ;
46
+
47
+ function clChange ( formId ) {
48
+ let form = document . getElementById ( formId ) ;
49
+ let counts = { R : 0 , G : 0 , A : 0 , X :0 } ;
50
+
51
+ let listItems = form . getElementsByTagName ( "li" ) ;
52
+
53
+ for ( let elem of listItems ) {
54
+ let menu = elem . getElementsByTagName ( "select" ) [ 0 ] ;
55
+ let mvalue = menu . value ;
56
+
57
+ counts [ mvalue ] ++ ;
58
+ }
59
+
60
+ form . elements [ "rcount" ] . value = counts [ "R" ] ;
61
+ form . elements [ "gcount" ] . value = counts [ "G" ] ;
62
+ form . elements [ "acount" ] . value = counts [ "A" ] ;
63
+ form . elements [ "xcount" ] . value = counts [ "X" ] ;
64
+
65
+ let numClItems = listItems . length - counts [ "X" ] ;
66
+ form . elements [ "rtotal" ] . value = numClItems ;
67
+ form . elements [ "gtotal" ] . value = numClItems ;
68
+ form . elements [ "atotal" ] . value = numClItems ;
69
+ form . elements [ "xtotal" ] . value = listItems . length ;
70
+ }
71
+ </ script >
0 commit comments