-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCustomPractice.htm
More file actions
156 lines (148 loc) · 5.33 KB
/
Copy pathCustomPractice.htm
File metadata and controls
156 lines (148 loc) · 5.33 KB
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<!DOCTYPE html>
<html>
<!-- **************************************************************************
Math Practice Generator
Creator: Michael Anthony Abril (GitHub: coolfizzin)
License: GPL v.3.0
Updated: 12/22/2018
Originally inspired by code from http://leancrew.com/all-this/2008/01/math-practice-sheet-in-html-and-javascript/
******************************************************************************* -->
<head>
<title>Custom Math Practice : CatholicFamily.Fun : CatholicFamily.Fun</title>
<style type="text/css">
body {
font:24pt serif;
}
input, select, option, button {
font:24pt serif;
}
#maxmin {
display:inline-block;
vertical-align:top;
}
#tip {
display:inline-block;
padding:0.7em;
vertical-align:top;
}
#tiphead {
font-size:0.5em;
font-variant:small-caps;
text-decoration:underline;
}
#tiptext {
font-size:0.7em;
}
#tiptext span {
font-size:0.7em;
font-stretch:extra-condensed;
font-variant:small-caps;
}
</style>
<script language="Javascript">
//### Sets the tip
function signSet() {
var sign = document.getElementById('sign');
var signVal = sign.options[sign.selectedIndex].value;
var second = document.getElementById('second');
var secondType = second.options[second.selectedIndex].value;
var tip = document.getElementById('tiptext');
if (signVal=="addition" || signVal=="multiplication") {
if (secondType=="random")
tip.innerHTML="1st & 2nd numbers";
else
tip.innerHTML="1st number only";
}
else if (signVal=="subtraction" || signVal=="division") {
if (secondType=="random")
tip.innerHTML="2nd number & <b>answer</b>";
else
tip.innerHTML="<b>answer</b> only";
}
else if (signVal=="plusminus") {
if (secondType=="random")
tip.innerHTML="<span>Addition:</span> 1st & 2nd numbers<br/><span>Subtraction:</span> 2nd number & <b>answer</b>";
else
tip.innerHTML="<span>Addition:</span> 1st & 2nd numbers<br/><span>Subtraction:</span> 2nd number & <b>answer</b>";
}
else if (signVal=="multidivide") {
if (secondType=="random")
tip.innerHTML="<span>Multiplication:</span> 1st & 2nd numbers<br/><span>Division:</span> 2nd number & <b>answer</b>";
else
tip.innerHTML="<span>Multiplication:</span> 1st & 2nd numbers<br/><span>Division:</span> 2nd number & <b>answer</b>";
}
else if (signVal=="all") {
if (secondType=="random")
tip.innerHTML="<span>Plus/Times:</span> 1st & 2nd numbers<br/><span>Minus/Divide:</span> 2nd number & <b>answer</b>";
else
tip.innerHTML="<span>Plus/Times:</span> 1st & 2nd numbers<br/><span>Minus/Divide:</span> 2nd number & <b>answer</b>";
}
}
//### Shows or hides extra fields
function secondSet() {
var second = document.getElementById('second');
var secondType = second.options[second.selectedIndex].value;
var by = document.getElementById('by');
var bymax = document.getElementById('bymax');
if (secondType=='specific') {
by.style.visibility='';
bymax.style.visibility='hidden';
}
else if (secondType=='range') {
by.style.visibility='';
bymax.style.visibility='';
}
else {
by.style.visibility='hidden';
bymax.style.visibility='hidden';
}
signSet();
}
//### Validates number ranges
function validate(minId, maxId) {
var min = document.getElementById(minId);
var max = document.getElementById(maxId);
if (parseInt(max.value) < parseInt(min.value))
max.value = min.value;
}
</script>
</head>
<body onload="secondSet()">
<form action="Practice.htm" method="get" accept-charset="utf-8">
<label for="size">Size:</label>
<select name="size" id="size">
<option selected value="5x5">5 × 5</option>
<option value="6x6">6 × 6</option>
</select>
<br/>
<label for="sign">Sign:</label>
<select name="sign" id="sign" onchange="signSet()">
<option value="addition">+</option>
<option value="subtraction">−</option>
<option value="multiplication">×</option>
<option value="division">÷</option>
<option selected value="plusminus">+/−</option>
<option value="multidivide">×/÷</option>
<option value="all">+/−/×/÷</option>
</select>
<br/>
<label for="second">Second number:</label>
<select name="second" id="second" onchange="secondSet()">
<option selected value="random">Random</option>
<option value="specific">Specific</option>
<option value="range">Range</option>
</select>
<input type="number" name="by" id="by" min="0" max="99" value="1" style="visibility:hidden; width:2em" onkeyup="validate('by', 'bymax')" onchange="validate('by', 'bymax')"/>
<input type="number" name="bymax" id="bymax" min="0" max="99" value="12" style="visibility:hidden; width:2em" onkeyup="validate('by', 'bymax')" onchange="validate('by', 'bymax')"/><br/>
<div id="maxmin">
<label for="min" id="min">Minimum:</label> <input type="number" name="min" min="0" max="99" value="0" style="width:2em" onkeyup="validate('min', 'max')" onchange="validate('min', 'max')"/><br/>
<label for="max" id="max">Maximum:</label> <input type="number" name="max" min="0" max="99" value="12" style="width:2em" onkeyup="validate('min', 'max')" onchange="validate('min', 'max')"/><br/>
<button type="submit" style="float:left" onLoad="signSet()">Make it!</button>
</div>
<div id="tip">
<div id="tiphead">Max and Min determine:</div>
<div id="tiptext"></div>
</div>
</form>
</body>
</html>