Avatar billede mikze Nybegynder
18. december 2004 - 20:58 Der er 12 kommentarer og
2 løsninger

Fejl i javascript

Nogle som kan se fejl i dette script:
Fejlen kommer på den linje hvor jeg kører funktionen på. Altså på min <button onclick="skifthusklogin()">Skift</button>

<script>
index == 0;
function skifthusklogin() {
if(index=="0") {
document.getElementById("nej").display = "all";
document.getElementById("ja").display = "none";
index = 1;
}
if(index=="1") {
document.getElementById("nej").display = "none";
document.getElementById("ja").display = "all";
index == 0;
}
}
</script>
Avatar billede skovenborg Nybegynder
18. december 2004 - 21:04 #1
Der er faktisk ret mange fejl, men dit script skal nok se sådan ud:
<script type="text/javascript">
var idx = 0;
function skifthusklogin() {
if(idx==1) {
document.getElementById("nej").style.display = "none";
document.getElementById("ja").style.display = "block";
idx = 0;
}
else {
document.getElementById("nej").style.display = "block";
document.getElementById("ja").style.display = "none";
idx = 1;
}
}
</script>

<body>
<div id="ja" style="display:none">Ja</div>
<div id="nej" style="display:none">Nej</div>
<button onclick="skifthusklogin()">knap</button>
</body>
Avatar billede roenving Novice
18. december 2004 - 21:04 #2
<script type="text/javascript">
var index = 0;
function skifthusklogin() {
  if(index==0) {
    document.getElementById("nej").display = "block";
    document.getElementById("ja").display = "none";
    index = 1;
  }
  if(index==1) {
    document.getElementById("nej").display = "none";
    document.getElementById("ja").display = "block";
    index = 0;
  }
}
</script>

-- der var to slags fejl:

1. Du må ikke bruge to lighedstegn ved tildeling af en værdi ...
2. "all" er ikke en gyldig værdi, så fejlmeddelelsen må have gået på det (hvilket du burde have skrevet !-)
Avatar billede skovenborg Nybegynder
18. december 2004 - 21:10 #3
Du kunne godt have brugt index som variabel-navn, men jeg ændrede det alligevel for en god ordens skyld (index bliver brugt andre steder, og det kan nogle gange skabe disharmoni hvis du har en variabel af samme navn ;-)

Ud over det skal du ikke erklære variabler med ==, men kun et ligmed tegn. == bruges kun til at teste med (som idx == 1, der tester om idx er lig 1).

En anden fejl er at getElementById ikke returnerer et style-objekt, men et html-element. Derfor skal du skrive document.getElementById("nej").style.display for at skifte stylen på elementet.

Og til sidst kan display ikke være lig "all" - det du leder efter er enten "block" eller "inline".
Avatar billede mikze Nybegynder
18. december 2004 - 21:11 #4
Et spørgsmål:

block og none, så fjerner den da begge?
Den skal vise en af dem, det gør den ikke.
Avatar billede mikze Nybegynder
18. december 2004 - 21:14 #5
jo det hele virker nu! Smid svar begge :)
Avatar billede skovenborg Nybegynder
18. december 2004 - 21:14 #6
næ, block skulle meget gerne vise en af dem hvis du bare følger mit eller roenvings forslag (ud over roenving glemte style efter getElementById ;-)

Du kan jo prøve det af en gang:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
<title>Test</title>
<script type="text/javascript">
var index = 0;
index == 0;
alert(index);
function skifthusklogin() {
if(index==1) {
document.getElementById("nej").style.display = "none";
document.getElementById("ja").style.display = "block";
index = 0;
}
else {
document.getElementById("nej").style.display = "block";
document.getElementById("ja").style.display = "none";
index = 1;
}
}
</script>
</head>
<body>
<div id="ja" style="display:none">Ja</div>
<div id="nej" style="display:none">Nej</div>
<input name="knap3" type="Button" value=" 3 " style="width:100px;">
<button onclick="skifthusklogin()">knap</button>
</body>
</html>
Avatar billede roenving Novice
18. december 2004 - 21:14 #7
-- ja, style overså jeg totalt !-|
Avatar billede skovenborg Nybegynder
18. december 2004 - 21:14 #8
og værgso' :-)
Avatar billede roenving Novice
18. december 2004 - 21:17 #9
>>skovenborg

-- alle browsere burde gå i quirks-mode med den xhtml, du har skrevet (hint: input !-)

-- og så er der jo lige oles to artikler, så det vil måske være bedre, hvis du indstiller din editor til at bruge et html4-dokument som standard !o]

-- og velbekomme '-)
Avatar billede mikze Nybegynder
18. december 2004 - 21:18 #10
Foresten, hvis nogle af jer kunne hjælpe inden i helt gik :).. Hvis jeg nu vil ændre en value på et hidden input, skal det så gøres sådan:


document.getElementById("mitinput").value = "value her";

<input name="mitinput" type="hidden">

?
Avatar billede roenving Novice
18. december 2004 - 21:21 #11
Næh, det ville være bedre med f.eks.

document.FORMNAVN.mitinput.value = "value her";

-- ellers skal du sætte id="mitinput" !-)

-- og tak for point ;~}
Avatar billede mikze Nybegynder
18. december 2004 - 21:23 #12
no problem :)

Takker for handlen :P
Avatar billede skovenborg Nybegynder
18. december 2004 - 23:36 #13
roenving >> Jeg har skam læst artiklerne (og taget ved lære af dem) og ja, det er ulovligt xhtml jeg skriver. Men nu har jeg lige sådan en smart skabelon jeg bruger (som jeg nok skal få rettet på et tidspunkt) og da jeg ikke lige kunne html4.01 doctypen i hovedet, ja så postede jeg bare hele skidtet alligevel ;-)
Avatar billede roenving Novice
19. december 2004 - 00:00 #14
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