Ik heb een adresklasse geschreven die compleet dynamisch opgebouwd wordt vanuit JavaScript. Er zit een functie in die nadat er gecheckt is op een database plaatsnaam en straatnaam retourneert. Dit script maakt van text inputs hidden inputs via de functie swapType.
Als ik 'hidden' gebruik als type om de input naar te swappen, dan kan ik vooraf en achteraf toekennen en checken wat ik wil, maar als ik submit komt het niet mee. Zodra ik de twee swapType calls uitcommentarieer werkt het als een tierelier. De DOM inspector en view selection source daar word ik ook niks wijzer van.
Verwerkende functin
swapType:
Ik denk niet dat het aan swapType ligt om heel eerlijk te zijn, omdat het wijzigen van de value zowel vooraf als achteraf het zelfde resultaat heeft.
Als ik 'hidden' gebruik als type om de input naar te swappen, dan kan ik vooraf en achteraf toekennen en checken wat ik wil, maar als ik submit komt het niet mee. Zodra ik de twee swapType calls uitcommentarieer werkt het als een tierelier. De DOM inspector en view selection source daar word ik ook niks wijzer van.
Verwerkende functin
JavaScript:
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
| this.processAddressData = function(responseValues) { if (responseValues == null) { alert("Postcode onbekend!"); self.addrBedrTr.style.display = "none"; self.addrNaamTr.style.display = "none"; self.addrStrtTr.style.display = "none"; self.addrWoonTr.style.display = "none"; } else { straat = responseValues.getElementsByTagName('straat')[0].childNodes[0].data; plaats = responseValues.getElementsByTagName('plaats')[0].childNodes[0].data; self.nummering = responseValues.getElementsByTagName('nummering')[0].childNodes[0].data; self.nummervan = responseValues.getElementsByTagName('huisnummerbereikstart')[0].childNodes[0].data; self.nummertot = responseValues.getElementsByTagName('huisnummerbereikeinde')[0].childNodes[0].data; // straatnaam invullen if (self.addrStrtTd_1.childNodes[1] == null) { self.addrStrtTd_1.appendChild(document.createTextNode(straat)); } else { self.addrStrtTd_1.childNodes[1] = straat; } self.addrStrtInput_1.value = straat; //self.swapType(self.addrStrtInput_1, 'hidden'); self.checkStraat(self.addrStrtInput_1); // plaatsnaam invullen if (self.addrWoonTd.childNodes[1] == null) { self.addrWoonTd.appendChild(document.createTextNode(plaats)); } else { self.addrWoonTd.childNodes[1].value = plaats; } //self.swapType(self.addrWoonInput, 'hidden'); self.addrWoonInput.value = plaats; self.checkWoonplaats(); trows = self.addrTable.getElementsByTagName("tr"); for (i=0; i<trows.length; i++) { try { trows[i].style.display = "table-row"; } catch (err) { trows[i].style.display = "block"; } } } } |
swapType:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| // since IE doesn't even support dynamic swapping of input type we need this hack function this.swapType = function(obj, type) { // strip all attributes for the new object atts = obj.attributes; otherTypeObj = document.createElement("input"); for (i=0; i<atts.length; i++) { if(atts[i].name != "type") { otherTypeObj.setAttribute(atts[i].name, atts[i].value); } else { otherTypeObj.setAttribute("type", type); } } obj_parent = obj.parentNode; obj_parent.replaceChild(otherTypeObj, obj); } |
Ik denk niet dat het aan swapType ligt om heel eerlijk te zijn, omdat het wijzigen van de value zowel vooraf als achteraf het zelfde resultaat heeft.
iOS developer