Avatar billede decrypto Nybegynder
10. februar 2003 - 22:54 Der er 11 kommentarer og
1 løsning

Simpel spørgsmål

Hejsa,

Jeg sidder og roder lidt med JavaScript, og er desværre gået i stå et sted. Jeg prøver at kalde en function et par gange i min kode. Tilsyneladende virker den kun første gang. Anden gang bliver jeg promptet med en fejl, der siger at den 'expects a function'. Hvad mangler jeg??

----------------- min kode -------------------------
<script language="javascript">
function doConvertDateToNumber(dte){
var dte;
var arrDate;
   
arrDate = dte.split("-");
   
doConvertDateToNumber = arrDate[2];
doConvertDateToNumber = doConvertDateToNumber+arrDate[1];
doConvertDateToNumber = doConvertDateToNumber+arrDate[0];

return doConvertDateToNumber;
}
</script>
</head>

<body>
<script language="javascript">
date_1 = "12-08-1976";
date_1 = doConvertDateToNumber(date_1);
document.write(date_1+'<br>');

date_2 = "01-01-1977";
date_2 = doConvertDateToNumber(date_2);
document.write(date_2+'<br>');

date_3 = "12-12-2003";       
date_3 = doConvertDateToNumber(date_3);
document.write(date_3+'<br>');
</script>
---------------------- kode slut ---------------------
Avatar billede decrypto Nybegynder
10. februar 2003 - 22:57 #1
Med venlig hilsen,
dEcRyPtO
Avatar billede olebole Juniormester
10. februar 2003 - 22:58 #2
<ole>

Dit script eksisterer ikke længere, når du overskriver hele dokumentet med document.write()

/mvh
</bole>
Avatar billede angam Nybegynder
10. februar 2003 - 22:59 #3
Er det ikke bare fordi du echo'er ud direkte i selve vinduet, og dermed "sletter" det originale scriptkode..?

Prøv at erstat document.write() med alert() - og så tror jeg det virker som det skal.
Avatar billede decrypto Nybegynder
10. februar 2003 - 23:02 #4
Nåh, men det hjælper heller ikke med en alert(); istedet for en document.write();

Hvordan kan jeg ellers skrive det ud???

/dEcRyPtO
Avatar billede angam Nybegynder
10. februar 2003 - 23:02 #5
... så for at då det til at virke, skal du sørge for at skrive:
<span id=tekst name=tekst>&nbsp;</span>

og i din script-kode:
date_1 = "12-08-1976";
date_1 = doConvertDateToNumber(date_1);
document.write(date_1+'<br>');

date_2 = "01-01-1977";
date_2 = doConvertDateToNumber(date_2);
document.write(date_2+'<br>');

date_3 = "12-12-2003";       
date_3 = doConvertDateToNumber(date_3);
document.write(date_3+'<br>');

erstattes med:

date_1 = "12-08-1976";
date_1 = doConvertDateToNumber(date_1);
out = date_1+'<br>';

date_2 = "01-01-1977";
date_2 = doConvertDateToNumber(date_2);
out+= date_2+'<br>';

date_3 = "12-12-2003";       
date_3 = doConvertDateToNumber(date_3);
out += date_3+'<br>';

tekst.innerHTML = out;
Avatar billede decrypto Nybegynder
10. februar 2003 - 23:03 #6
I kan jo prøve at kopiere koden, og køre den i en browser...
Avatar billede angam Nybegynder
10. februar 2003 - 23:04 #7
hmmm ... roddet svar - prøver lige at komme med en færdig løsning.. hold on!
Avatar billede decrypto Nybegynder
10. februar 2003 - 23:06 #8
Virkede ikke....Syntax error.....
Avatar billede angam Nybegynder
10. februar 2003 - 23:10 #9
Det her virker:

<html>
<head>
<script language="javascript">
    function doConvertDateToNumber(dte) {
        var dte;
        var arrDate;
           
        arrDate = dte.split("-");
        result = arrDate[2];
        result = result+arrDate[1];
        result = result+arrDate[0];
        return result;
    }
</script>
</head>

<body>
<span id=tekst name=tekst>&nbsp;</span>
<script language="javascript">
    date_1 = doConvertDateToNumber("12-08-1976");
    out = date_1+'<br>';
   
    date_2 = doConvertDateToNumber("01-01-1977");
    out += date_2+'<br>';

    date_3 = doConvertDateToNumber("12-12-2003");
    out += date_3+'<br>';
    tekst.innerHTML = out;
</script>
<body>
</html>
Avatar billede angam Nybegynder
10. februar 2003 - 23:12 #10
Der var to fejl i koden:

1) Du echo'ede direkte i html-koden (og overskrev dermed scriptet).
Den har jeg løst ved at skrive resultatet ud i <span>..</span>-koden.
2) Du tildelte en værdi til variablen doConvertDateToNumber - der hed det samme som funktionen selv - og dermed overskrev du også funktionen der var igang. Problemet løst ved at kalde variablen for result istedet.
Avatar billede olebole Juniormester
10. februar 2003 - 23:17 #11
Denne her virker også i browsere, der ikke understøtter innerHTML (f.eks: Opera):

<html>
<head>
<script language="javascript">
    function doConvertDateToNumber(dte) {
        var dte;
        var arrDate;
           
        arrDate = dte.split("-");
        result = arrDate[2];
        result = result+arrDate[1];
        result = result+arrDate[0];
        document.write( result + "<br>" );
    }
</script>
</head>

<body>
<script language="javascript">
    date_1 = doConvertDateToNumber("12-08-1976");
   
    date_2 = doConvertDateToNumber("01-01-1977");

    date_3 = doConvertDateToNumber("12-12-2003");
</script>
<body>
</html>

/mvh
Avatar billede decrypto Nybegynder
10. februar 2003 - 23:18 #12
Det virker mange tak.
Og xtra tak for forklaringen.

dEcRyPtO
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