Ik ben bezig om in Javascript/Jquery een script te maken waarmee ik in een formulier tags kan toevoegen en verwijderen.
Ik wil de tags bijhouden in een array. Het toevoegen van tags aan de array is geen probleem. Het verwijderen van de laatste tag gaat ook goed. Echter, als ik in het midden of aan het begin van de array een waarde verwijder door middel van array.splice ([index], [count]) gaat het fout en ik kan er maar niet achter komen hoe ik dit fatsoenlijk kan maken. Op een of andere manier raakt hij zijn index/teller kwijt als ik in het begin of in het midden een array entry verwijder.
Ik ben zelf vrij nieuw met Javascript en Jquery en ben nu inmiddels al een paar uur aan het uitproberen en zoeken op internet maar het is me nog steeds niet gelukt.
Ik heb al op diverse fora gekeken en diverse tutorials over array's doorgelezen maar krijg niet gevonden wat ik zoek.
Ik weet dat ik met het commando array.splice (index, count) een array entry kan verwijderen. Als ik echter vervolgens de array doorloop dan krijg ik maar de helft of is ineens alles weg.
Ik heb geprobeerd met:
for (var i=0; i<array.length; i++) {
en met
for (var x in tags) {
het lukt echter niet... Heeft iemand hier een oplossing voor?
formulier:
javascript/jquery code die hij uitvoert bij het toevoegen van een tag:
javascript/jquery code hij hij uitvoert bij het verwijderen van een tag:
Ik wil de tags bijhouden in een array. Het toevoegen van tags aan de array is geen probleem. Het verwijderen van de laatste tag gaat ook goed. Echter, als ik in het midden of aan het begin van de array een waarde verwijder door middel van array.splice ([index], [count]) gaat het fout en ik kan er maar niet achter komen hoe ik dit fatsoenlijk kan maken. Op een of andere manier raakt hij zijn index/teller kwijt als ik in het begin of in het midden een array entry verwijder.
Ik ben zelf vrij nieuw met Javascript en Jquery en ben nu inmiddels al een paar uur aan het uitproberen en zoeken op internet maar het is me nog steeds niet gelukt.
Ik heb al op diverse fora gekeken en diverse tutorials over array's doorgelezen maar krijg niet gevonden wat ik zoek.
Ik weet dat ik met het commando array.splice (index, count) een array entry kan verwijderen. Als ik echter vervolgens de array doorloop dan krijg ik maar de helft of is ineens alles weg.
Ik heb geprobeerd met:
for (var i=0; i<array.length; i++) {
en met
for (var x in tags) {
het lukt echter niet... Heeft iemand hier een oplossing voor?

formulier:
HTML:
1
2
3
| <form method="post" action="" enctype="multipart/form-data"> Trefwoorden <input type="text" name="tag" value="" maxlength="16" class="input-tag" /><input type="button" value="toevoegen" class="button-tag-add" maxlength="128" /> <p class="tag-info"></p> |
javascript/jquery code die hij uitvoert bij het toevoegen van een tag:
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
| $('.button-tag-add').click(function () { var double = ""; if ($('.input-tag').val() != "") { if (tags.length > 0) { for (var x in tags) { if ($('.input-tag').val() == tags[x]) { double = "yes"; $('#test').append('double!'); } } if (double != "yes") { tags[counter] = $('.input-tag').val(); $('.tag-info').append('<span class="tag-item" id='+counter+'>'+counter+': '+$('.input-tag').val()+'<img src="images/remove.png" class="img-tag-remove" /><input type="hidden" name="tag-'+counter+'" value="'+$('.input-tag').val()+'" /></span>'); $('.input-tag').val('') counter = counter+1; $('#test').html(''); for (var x in tags) { $('#test').append("id: "+x+" "+tags[x]+"<br />"); } } } else { tags[0] = $('.input-tag').val(); $('.tag-info').append('<span class="tag-item" id='+counter+'>'+counter+': '+$('.input-tag').val()+'<img src="images/remove.png" class="img-tag-remove" /><input type="hidden" name="tag-'+counter+'" value="'+$('.input-tag').val()+'" /></span>'); $('.input-tag').val(''); counter = counter+1; $('#test').html(''); for (var x in tags) { $('#test').append("id: "+x+" "+tags[x]+"<br />"); } } } }) |
javascript/jquery code hij hij uitvoert bij het verwijderen van een tag:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
| $('.tag-item').click(function () { var id = $(this).attr('id'); tags.splice (id, 1); counter = counter-1; $(this).remove(); $('#test').html(''); var len=tags.length; for (var i=0; i<len; i++) { $('#test').append("id: "+i+" "+tags[i]+"<br />"); } }) |