Hi
Even een newbie vraagje .
Heb 4 select boxes die dynamisch op elkaar reageren zie HTML code.
Nu krijg ik een fout melding op lijn 18 van mij java script in IE 7.0.
Namelijk :A Runtime Error has occurred.
Line: 18
Error: Object doesn't support this property or method
Heb op diverse fora geken en Google
Weet hier iemand een oplossing voor.
Java script code
Even een newbie vraagje .
Heb 4 select boxes die dynamisch op elkaar reageren zie HTML code.
Nu krijg ik een fout melding op lijn 18 van mij java script in IE 7.0.
Namelijk :A Runtime Error has occurred.
Line: 18
Error: Object doesn't support this property or method
Heb op diverse fora geken en Google
Weet hier iemand een oplossing voor.
code:
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
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>dynamic select boxes test</title>
<script type="text/javascript" src="dynamicselect.js"></script>
</head>
<body>
<form action="#">
<div>
<select id="Select1">
<option value="select">Select test brand...</option>
<option value="test1">test1</option>
<option value="test2">test 2</option>
<option value="test3">test 3</option>
</select>
<select id="Select2">
<option class="select" value="select">Select test a...</option>
<option class="test1" value="test1a">test 1 a</option>
<option class="test2" value="test2a">test 2 a</option>
</select>
<select id="Select3">
<option class="select" value="select">Select test a...</option>
<option class="test1a" value="test1b">test 1 b</option>
</select>
<select id="Select4">
<option class="select" value="select">Select test a...</option>
<option class="test1b" value="test1c">test 1 c</option>
<option class="test2a" value="test2c">test 2 c</option>
<option class="test3" value="test3c">test 3 c</option>
</select>
</div>
</form>
</body>
</html> |
Java script code
code:
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
| function dynamicSelect(id1, id2) {
if (document.getElementById && document.getElementsByTagName) {
var sel1 = document.getElementById(id1);
var sel2 = document.getElementById(id2);
var clone = sel2.cloneNode(true);
var clonedOptions = clone.getElementsByTagName("option");
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
sel1.onchange = function() {
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
};
}
}
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
while (sel2.options.length) {
sel2.remove(0);
}
var pattern1 = /( |^)(select)( |$)/;
var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
for (var i = 0; i < clonedOptions.length; i++) {
if (clonedOptions[i].className.match(pattern1) || clonedOptions[i].className.match(pattern2)) {
sel2.appendChild(clonedOptions[i].cloneNode(true));
}
}
}
window.onload = function() {
dynamicSelect("Select1", "Select2");
dynamicSelect("Select2", "Select3");
dynamicSelect("Select3", "Select4");
dynamicSelect("Select2", "Select4");
dynamicSelect("Select1", "Select4");
} |