Avatar billede cmau Nybegynder
31. august 2007 - 10:41 Der er 9 kommentarer og
1 løsning

Fjerne upload bokse igenq

Hej eksperter.

Jeg er ved at lave en multiple upload side, men har et lille problem. jeg har en funktion hvor jeg tilføjer flere felter med, som ser således ud:
obj = document.getElementById('uploadfields');
    obj.innerHTML += count + '<img src="/images/delete.png" alt="" style="cursor:pointer;" onclick="removeuploadfield(' + count + ')" title="Slet billede" />Billede: <input id="startfield" class="file" style="float:none;display:inline;" type="file" name="photos[]" /><br />';


Men hvordan ville jeg simpelt kunne fjerne et felt igen. Den skal selvfølgelig fjerne det flet man vælger og ikke bare tage en.

Jeg tænkte på noget replace, som nedenstående, men det virker ikke for mig.

function removeuploadfield(id) {
    obj = document.getElementById('uploadfields');
    var html = obj.innerHTML;
    obj.innerHTML = html.replace( id + '<img src="/images/delete.png" alt="" style="cursor:pointer;" onclick="" title="Slet billede" />Billede: <input id="startfield" class="file" style="float:none;display:inline;" type="file" name="photos[]" /><br />', '');
}
Avatar billede montago Praktikant
31. august 2007 - 11:13 #1
en lidt anden måde at gøre det på er at putte hver upload felt ind i et <span>

fx

<span id="felt1">....kode...</span>
<span id="felt1">....kode...</span>

så kan du bagefter :

document.getElementById('felt1').innerHTML = "";
Avatar billede montago Praktikant
31. august 2007 - 11:22 #2
hvis du bruger XML-DOM kan man fjerne hele <span> elementet inklusiv koden indeni... men metoden er lidt mere omstændig... et tomt Span fylder jo ingenting :)

du kan også vælge at putte alle dine strings ind i et array - og bagefter slette eller vælge at udskive forskellige indexes. måske en smartere måde...
Avatar billede cmau Nybegynder
31. august 2007 - 11:26 #3
Selvfølgelig. Tænkte jeg faktisk på, men tænke ikke at jeg bare kunne sætte innerHTML til ingenting. Tusind tak. Tager bare den første løsning.

Smider du svar?
Avatar billede cmau Nybegynder
31. august 2007 - 11:28 #4
Lige et hurtigt ekstra spørgsmål. Kan det lade sig gøre at tilføje <tr><td></td></tr> til en table med js? uden at skulle lave en ny tabel hver gang?
Avatar billede montago Praktikant
31. august 2007 - 11:29 #5
var UploadFields = new Array()

function addField(){
  UploadFields.push(  '<img src="/images/delete.png" alt="" style="cursor:pointer;" onclick="removeuploadfield(?)" title="Slet billede" />Billede: <input id="startfield" class="file" style="float:none;display:inline;" type="file" name="photos[]" /><br />' )
}
function printFields(){
  obj = document.getElementById('uploadfields');
  out = ""
  for(i=0; i<UploadFields.length ; i++)
    out += UploadFields[i].replace(/\?/g, i) //<-- indsæt count igen
  obj.innerHTML = out
}

function removeuploadfield(j){
  // tjek lige om det virker...
  UploadFields = UploadFields.slice(0,j).concat( UploadFields.slice(j+1) )
}
Avatar billede montago Praktikant
31. august 2007 - 11:30 #6
jep ... du kan bruge en Table som object og indsætte rows og cells...

kig i på http://www.w3schools.com/htmldom/dom_obj_table.asp
Avatar billede cmau Nybegynder
31. august 2007 - 11:31 #7
mange tak :)
Avatar billede montago Praktikant
31. august 2007 - 12:20 #8
no problem

hvilken af de 3 løsninger valgte du ? :p
Avatar billede cmau Nybegynder
31. august 2007 - 13:53 #9
Jeg valgte bare den med span, da det ville være den nemmeste og muligheden for at slette igen nok ikke ville blive brugt særlig meget og som du selv sagde, så ville et span fra eller til ikke trække noget.
Avatar billede olebole Juniormester
31. august 2007 - 16:35 #10
<ole>

innerHTML har aldrig været valid i nogen somhelst standard - og bliver det heller aldrig. Desuden er den komplet inkompatibel med XHTML. innerHTML hører - sammen med font-tags og table-layout i kæmpe nestede tabelhelveder - til i et andet årtusinde  ;o)

Desuden er der iøvrigt ingen af de gamle HTML-DOM-metoder, der er kompatible med XHTML. Når XHTML en dag bliver understøttet på WWW, vil browseren gå ned med en XML-fejl

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester