Avatar billede dalbjerg Nybegynder
25. februar 2004 - 00:34 Der er 10 kommentarer og
1 løsning

sletningen i en select box

Hej

Jeg er ved at lave et administrations modul til et kontakt modul. Men er stødt ind i et problem jeg kan ikke rigtigt for min funktion til at slette det den skal.

java script:
function sletpunkter(frm) {
    arr_spm = new Array(frm.spmwhat.length-1);
    for (var i = 0; i < frm.spmwhat.length-1; i++) {
        if(i != frm.spmwhat.selectedIndex) {
            arr_spm[i] = frm.spmwhat.options[i].text;
        }
    }
    for (var i = 0; i < arr_spm.length; i++) {
            frm.spmwhat.options[i].text = arr_spm[i];
    }       

}

unction opretpunkter(frm) {
    arr_spm = new Array(frm.spmwhat.length+1);
   
    for (var i = 0; i < frm.spmwhat.length; i++) {
        arr_spm[i] = frm.spmwhat.options[i].text;
    }
    arr_spm[i] = frm.opretpunkt.value;

    frm.spmwhat.length++;

    for (var i = 0; i < arr_spm.length ; i++) {
        frm.spmwhat.options[i].text = arr_spm[i];
    }
}


<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" style="width:24%;"><input name="opretpunkt" type="text" value="" size="15"></td>
<td valign="top" style="width:11%;"><input name="opret_punkt_knap" type="button" value="Opret" onClick="opretpunkter(this.form);"></td>
<td valign="top" style="width:1%;"><select name="spmwhat" size="3"></select></td>
<td valign="top" style="padding: 0px 0px 0px 3px;"><input name="opret_punkt_knap" type="button" value="Slet" onClick="sletpunkter(this.form)"></td>
</tr>
</table>


Det man skal gøre er at trykke på en ting i select boksen. Herefter trykker man på Slet knappen, men det fungere bare ikke. En som kan finde ud af hvorfor? Er lidt newbee til det her javascript.
Avatar billede roenving Novice
25. februar 2004 - 01:18 #1
Man skal en del længere omkring, men koden er enklere:

<script type="text/javascript">
function sletpunkter(frm) {
    sel = document.frm.spmwhat,j=0,idx=sel.selectedIndex;
    for (var i = 0;sel.length> i; i++) {
        if(i != idx) {
            sel.options[j].text = sel.options[i].text;
            sel.options[j++].value = sel.options[i].value;
        }
    }
    sel.length -= 1;
}

function opretpunkter(frm) {
    sel = document.frm.spmwhat;
    newOpt = document.createElement('OPTION');
    sel.appendChild(newOpt);
    newOpt.value = newOpt.text = document.frm.opretpunkt.value;
}
</script>

<form name="frm">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" style="width:24%;"><input name="opretpunkt" type="text" value="" size="15"></td>
<td valign="top" style="width:11%;"><input name="opret_punkt_knap" type="button" value="Opret" onClick="opretpunkter(this.form);"></td>
<td valign="top" style="width:1%;"><select name="spmwhat" style="width:150px;"></select></td>
<td valign="top" style="padding: 0px 0px 0px 3px;"><input name="opret_punkt_knap" type="button" value="Slet" onClick="sletpunkter(this.form)"></td>
</tr>
</table>
</form>
Avatar billede roenving Novice
25. februar 2004 - 01:19 #2
-- og så har jeg jo ikke taget den simple validering med, så du skal som minimum checke, at der i virkeligheden er en value i opretpunkt !-)
Avatar billede dalbjerg Nybegynder
29. februar 2004 - 14:45 #3
ved din opret skriver den bare document.frm.spmwhat is null or not and object.
Avatar billede roenving Novice
29. februar 2004 - 14:53 #4
Da ikke med den kode, som ligger her ?-)
Avatar billede roenving Novice
29. februar 2004 - 14:53 #5
men jeg har jo også sat form-tags på !-)
Avatar billede dalbjerg Nybegynder
29. februar 2004 - 15:13 #6
hmm det med form-tags har jeg også de hedder bare ikke frm, men redigerespm<%= i %> hvor der i er et nummer som hele tiden vokser. Dette bliver jo overført med (this.form) ikk?
Avatar billede dalbjerg Nybegynder
29. februar 2004 - 15:22 #7
så skal jeg bare fjerne docoment fra dit.. så virker det.. thx.
Avatar billede roenving Novice
29. februar 2004 - 15:23 #8
Ja, men jeg ændrede ikke koden på det punkt, så:

function sletpunkter(frm) {
    sel = frm.spmwhat,j=0,idx=sel.selectedIndex;

og:

function opretpunkter(frm) {
    sel = frm.spmwhat;
    newOpt = document.createElement('OPTION');
    sel.appendChild(newOpt);
    newOpt.value = newOpt.text = frm.opretpunkt.value;
}
Avatar billede dalbjerg Nybegynder
13. april 2004 - 10:25 #9
svarer du lige?
Avatar billede roenving Novice
13. april 2004 - 22:06 #10
Velbekomme '-)
Avatar billede roenving Novice
28. april 2004 - 15:06 #11
-- og tak for points ;~}
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