Avatar billede masterbp Nybegynder
12. maj 2001 - 10:02 Der er 5 kommentarer og
1 løsning

Ændre indhold i et input felt

Jeg har en side i stil med nedenstående, som skifter billedet i en celle når der klikkes på det. Jeg vil samtidigt gerne have, at der på samme tid ændres i navnet på det input felt, som befinder sig i den celle, der bliver klikket på (dvs ændre navn fra \'notclicked\' til \'clicked\' og omvendt).

<script language=\"javascript\">
pic1 = new Image;
pic1.src = \"images/pic1.gif\";

pic2 = new Image;
pic2.src = \"images/pic2.gif\";

function invertImage(obj) {
    if(obj.src == pic2.src)
        obj.src=pic1.src
    else
        obj.src=pic2.src
}
</script>
<table border=\"0\">
  <tr>
    <td><img src=pic1.src onclick=\"invertImage(this)\"><input id=1 type=hidden name=\"clicked\" value=1></td>
    <td><img src=pic1.src onclick=\"invertImage(this)\"><input id=2 type=hidden name=\"notclicked\" value=2></td>
  </tr>
</table>
Avatar billede jakoba Nybegynder
12. maj 2001 - 10:27 #1
<script language=\"javascript\">
pic1 = new Image;
pic1.src = \"images/pic1.gif\";

pic2 = new Image;
pic2.src = \"images/pic2.gif\";

function invertImage(obj) {
    if(obj.src == pic2.src)
        obj.src=pic1.src
    else
        obj.src=pic2.src
}
</script>
<form>
<table border=\"0\">
  <tr>
    <td><img src=\"images/pic1.gif\" onclick=\"invertImage(this)\"><input id=\"h1\" type=hidden name=\"clicked\" value=1></td>
    <td><img src=\"images/pic1.gif\" onclick=\"invertImage(this)\"><input id=\"h2\" type=hidden name=\"notclicked\" value=2></td>
  </tr>
</table>
</form>

i <img siger du  src=pic1.src  du må kun bruge strengkonstanter der, ikke en vaiabel. eg har ændret til  src=\"images/pic1.gif\" .
strengparametre skal altid omkranses af \"-tegn. type=hidden ændret til type=\"hidden\" .
Dine id=1 og id=2 går ikke. id bær være et javasxript navn og begunde med et bogstav.
Koden er \"IE-only\", men sæt alligevel <form> og </endform> omkring dine inputfelter (eller er dette et udsnit af din kode så de er der allerede?)

mvh JakobA
Avatar billede jakoba Nybegynder
12. maj 2001 - 10:39 #2
Ups.  </endform> er gal. det er </form> det hedder.

for at ændre i felterne samtidig må du fortælle hvilet felt der skal ændres sammen med hvilket billede. en ekstra parameter til funktionen:
( name bruges til at addressere feltet. den bør du ikke ændre. lav ændring i value istedet:

function invertImage(obj, feltnavn) {
    if(obj.src == pic2.src) {
        obj.src=pic1.src;
        document.forms[0][feltnavn].value = \"notclicked\";
    } else [
        obj.src=pic2.src;
        document.forms[0][feltnavn].value = \"clicked\";
    }
};

dine 2 onclick events bliver så:
            onclick=\"invertImage(this,\'clicked\')\"
            onclick=\"invertImage(this,\'notclicked\')\"
NB: bemærk at \'clicked\' og \'notclicked\' her er felternes name= parametre. Det er ikke de værdier vi lægger i value.

mvh JakobA

Avatar billede masterbp Nybegynder
12. maj 2001 - 11:48 #3
Erhm. Jeg er dog ikke helt færdig.
Meningen er, at alle input-felter (der er mere end 2 i praksis)skal hedde \'notclicked[]\' ved start
og efterhånden som man klikker på cellerne skal de omdøbes til \'clicked[]\'. Hvis jeg kobler dette til PHP, kan jeg få et array ind med værdierne på alle de felter, som er clicked.
Avatar billede jakoba Nybegynder
12. maj 2001 - 12:01 #4
Ok. ja så er det name der skal ændres. ikke 100% sikker på man kan.

måske:

function invertImage(obj, feltnavn) {
    if(obj.src == pic2.src) {
        obj.src=pic1.src;
        document.forms[0][feltnavn].name = \"notclicked[]\";
    } else [
        obj.src=pic2.src;
        document.forms[0][feltnavn].name = \"clicked[]\";
    }
};

Sig til hvis det ikke duer, så lægger jeg point så du kan lave nyt spgm.

mvh JakobA
Avatar billede masterbp Nybegynder
12. maj 2001 - 12:07 #5
Vil overståene ikke ikke rette i _ALLE_ input-felter med navnet \'notclicked\'?

Opretter et nyt spørgsmål hvor jeg vil forsøge at uddybe problemet.

Behold du bare dine point. Din løsning var til stor inspiration :)
Avatar billede jakoba Nybegynder
12. maj 2001 - 12:13 #6
tak :)
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