Toon posts:

[Javascript] Onbekende runtime error onder ie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey,

Ik heb een javascriptje gemaakt waarmee ik items aan een formulier toe kan voegen en weer weg kan halen.

Dit werkt perfect onder firefox, alleen onder internet explorer geeft die de volgende fouten:

Onbekende runtime-fout op deze regel: document.getElementById('items').innerHTML = itemtags;

En object vereist op deze regel:
inhouditems[n][0] = document.getElementById("titel."+n).value;

Onder safari print die standaard op het scherm undefined, maar daar werkt die wel perfect.

Heeft iemand hier een idee waar al deze vage errors vandaan komen en hoe ik het eventueel op kan lossen?


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
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
<script language="javascript">
            var inhouditems = new Array();
                function additem(){
                    var aelementen;
                    
                    for(var n = 0;n<inhouditems.length;n++) {
                        inhouditems[n][0] = document.getElementById("titel."+n).value;
                        inhouditems[n][1] = document.getElementById("tekst."+n).value;
                    }
                    
                    aelementen = inhouditems.length;
                    
                    inhouditems[aelementen] = new Array(2);
                    
                    inhouditems[aelementen][0] = "";
                    inhouditems[aelementen][1] = "";
                    
                    outputtags();
                }
                
                function delitem(i){
                    for(var n = 0;n<inhouditems.length;n++) {
                        inhouditems[n][0] = document.getElementById("titel."+n).value;
                        inhouditems[n][1] = document.getElementById("tekst."+n).value;
                    }
                    
                    for(var n = 0;n<inhouditems.length;n++) {
                        if(n > i){
                            inhouditems[(n-1)] = inhouditems[(n)];
                        }
                    }
                    
                    inhouditems.length = inhouditems.length - 1;
                    outputtags();
                }
                
                function outputtags(){
                    var itemtags;
                    for(var n = 0;n<inhouditems.length;n++) {
                        itemtags += "<tr>";
                        itemtags += "<td>";
                        itemtags += "Titel:";                   
                        itemtags += "</td>";
                        itemtags += "<td>";
                        itemtags += "<input type='text' id='titel."+n+"' name='titel["+n+"]' value='"+inhouditems[n][0]+"'>";                   
                        itemtags += "</td>";
                        itemtags += "</tr>";
                        itemtags += "<tr>";
                        itemtags += "<td valign='top'>";
                        itemtags += "Tekst:";                   
                        itemtags += "</td>";
                        itemtags += "<td>";
                        itemtags += "<textarea id='tekst."+n+"' name='tekst["+n+"]' rows='6' cols='40'>"+inhouditems[n][1]+"</textarea>";                   
                        itemtags += "</td>";
                        itemtags += "</tr>";
                        itemtags += "<tr>";
                        itemtags += "<td colspan='2'><input type='button' value='Annuleer' onClick='delitem("+n+")'></td>"; 
                        itemtags += "</tr>";
                    }
                    document.getElementById('items').innerHTML = itemtags;
                }
            </script>

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:42

gorgi_19

Kruimeltjes zijn weer op :9

Javascript hoort thuis in Webdesign & Graphics
>> Webdesign & Graphics

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Sappie
  • Registratie: September 2000
  • Laatst online: 27-04 07:10

Sappie

De Parasitaire Capaciteit!

Je zou es even de javascript console van Firefox kunnen gebruiken om te kijken wat voor errors / warnings er plaatsvinden. Deze geeft namelijk mooie info omtrent de error / warning en daar wordt je meestal wel wat wijzer van.

edit:
Had verder de code nog niet bekeken :X maar zoals andre mogen er geen punten worden gebruikt in id names.. of toch wel, zoals RobIII ff heeft opgezocht :)

[ Voor 40% gewijzigd door Sappie op 28-04-2005 17:06 ]

Specs | Audioscrobbler


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Volgens mij mogen er geen punten (.) gebruikt worden in id's :)

Verwijderd

Topicstarter
Sappie schreef op donderdag 28 april 2005 @ 16:57:
Je zou es even de javascript console van Firefox kunnen gebruiken om te kijken wat voor errors / warnings er plaatsvinden. Deze geeft namelijk mooie info omtrent de error / warning en daar wordt je meestal wel wat wijzer van.
Onder firefox werkt die perfect dus daar kan ik ook geen errors vinden of begrijp ik je verkeerd?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
André schreef op donderdag 28 april 2005 @ 16:57:
Volgens mij mogen er geen punten (.) gebruikt worden in id's :)
Volgens de specs wel :?
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
Maar goed, ik zou geen punt gebruiken maar een underscore. Zel wel een IE-trekje zijn dat die punten niet mogen :P
Ik dacht iig hetzelfde toen ik het las, maar zocht het _to be sure_ toch nog even op ;)

[ Voor 23% gewijzigd door RobIII op 28-04-2005 17:03 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
André schreef op donderdag 28 april 2005 @ 16:57:
Volgens mij mogen er geen punten (.) gebruikt worden in id's :)
Ik heb het even uitgeprobeerd en punten werken wel:

Dit script werkt namelijk onder internet explorer:

code:
1
2
3
4
5
6
7
8
<script language="javascript">
function vulveld(){
    document.getElementById("testveld.10").value="blaat";
}
</script>

<input type="text" id="testveld.10"><br>
<input type="button" value="vul" onClick="vulveld()">


Iemand een idee wat het anders kan zijn?

[ Voor 18% gewijzigd door Verwijderd op 28-04-2005 17:04 ]


Verwijderd

Topicstarter
Het probleem lag in het feit dat internet explorer het niet leuk vind om met innerHTML iets tussen de table tags te schrijven

Nu heb ik het als volgt gedaan:

code:
1
2
3
4
5
6
7
8
<table>
<tr>
<td>
<span id="items">
</span>
</td>
</tr>
</table>


En heb ik tussen de span elke keer een tabel gezet met het item er in.

Nu heb ik alleen nog het volgende probleem:

Mijn javascript functies staan in de body, dit omdat de pagina geinclude word met php.
Als ik het goed begrijp dan kan dit de oorzaak zijn dat ik een regel undefined aan het begin te zien krijg.

Weet iemand een leuke oplossing waarmee ik het javascriptje wel in ze eigen pagina kan laten en dat ik toch niet zo'n lelijke undefined regel te zien krijg?


Dit probleem is ook verholpen:

var itemtags; moest var itemtags = ""; zijn.

[ Voor 12% gewijzigd door Verwijderd op 29-04-2005 10:29 ]


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 25-02 11:17

Clay

cookie erbij?

Het is imo ook mooier om html te genereren met createElement etc, en in het geval van tables met insertRow en insertCell...

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Topicstarter
Ah oke wist niet dat het op die manier mogelijk is.

De volgende keer dat ik zoiets dergelijks ga maken probeer ik die functies is.
Pagina: 1