Ik probeer in IE te achterhalen of een select tag een option heeft met een selected tag. Dit blijkt echter niet te werken.
Ik ben me ervan bewust dat hasAttribute pas werkt vanaf IE8. Daarin treedt dit probleem op. Ik krijg altijd als alert 'False' te zien, terwijl het attribuut gewoon bestaat. Andere attributen, zoals value, werken wel.
Ik kan ook geen getAttribute gebruiken omdat IE dat ziet alsof je gewoon option.selected aanroept, en dat geeft dus de huidige waarde weer, niet de waarde van het attribuut zoals in de HTML staat.
Uiteraard werkt dit in elke andere browser perfect. Ziet iemand een mogelijke oplossing die ik niet zie? Ik kom er zelf niet uit.
HTML:
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
| <?xml version="1.0" encoding="UTF-8"?> <!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" xml:lang="nl" lang="nl"> <head> <title>IE test</title> <script type="text/javascript"> function testselect() { if (document.getElementById('selecttest').options[0].hasAttribute('selected')) alert("True"); else alert("False"); } </script> </head> <body> <div> <select id="selecttest"> <option value="lala" selected="selected">Lalala</option> </select> <a onclick="testselect(); return false;">Test</a> </div> </body> </html> |
Ik ben me ervan bewust dat hasAttribute pas werkt vanaf IE8. Daarin treedt dit probleem op. Ik krijg altijd als alert 'False' te zien, terwijl het attribuut gewoon bestaat. Andere attributen, zoals value, werken wel.
Ik kan ook geen getAttribute gebruiken omdat IE dat ziet alsof je gewoon option.selected aanroept, en dat geeft dus de huidige waarde weer, niet de waarde van het attribuut zoals in de HTML staat.
Uiteraard werkt dit in elke andere browser perfect. Ziet iemand een mogelijke oplossing die ik niet zie? Ik kom er zelf niet uit.
Ik ontken het bestaan van IE.