Avatar billede kongfjong Nybegynder
11. januar 2007 - 09:27 Der er 10 kommentarer og
1 løsning

Hvorfor virker getElementById() ikke?

Sidder med et meget simpelt script, der skulle smide datoen ind i et input-felt, men jeg kan ikke få javascript til at bruge getElementById() metoden...

java script:
var dd = new Date();
var d = dd.getDate();
var m = dd.getMonth() + 1;
var y = dd.getYear() + '';
var y = y.substring(2,4);

var dato_elm = document.getElementById('dato');
dato_elm.value = d + '/' + m + '-' + y;

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
    <title>Nordfjeld - Ordreoprettelse</title>
   
    <script type="text/javascript">
    var x = navigator;
    var browser_navn = x.appName;

    if (browser_navn == 'Microsoft Internet Explorer') {
        document.write('<link rel="stylesheet" href="css/style_ie.css" type="text/css" />')
    }
    else {
        document.write('<link rel="stylesheet" href="css/style_ff.css" type="text/css" />')
    }
    </script>

    <script type="text/javascript" src="kalender/AnchorPosition.js"></script>
    <script type="text/javascript" src="kalender/CalendarPopup.js"></script>
    <script type="text/javascript" src="kalender/date.js"></script>
    <script type="text/javascript" src="kalender/PopupWindow.js"></script>
    <script type="text/javascript" src="scripts/js_scripts.js"></script>

    <script type="text/javascript">
    var cal = new CalendarPopup();
    cal.showNavigationDropdowns();
    </script>
</head>

<body onload="document.getElementById('ordrenr').focus();">

    <div id="main_container">
        <div id="top">
            <div id="logo">
                <img src="gfx/logo.gif" alt="Nordfjeld" />
            </div>
            <div id="top_right">
                Dato: <input type="text" id="dato" class="top_input_saelger" readonly="readonly" /><br />
                Ordrenr.: <input type="text" id="ordrenr" class="top_input" tabindex="1" /><br />
                Sælger: <input type="text" id="saelger" class="top_input_saelger" readonly="readonly" />

Det sjove er, at når jeg tester, f.eks. bare document.getElementById() ? alert('yes') : alert('no'); i det eksterne javascript, virker det ikke, men smider jeg den test i en onload-event på body-tagget, virker det fint nok, og jeg har endda også en onload-event pt på body-tagget der sætter focus på et input.felt som man kan se:)
Avatar billede erikjacobsen Ekspert
11. januar 2007 - 09:33 #1
Du kan ikke tilgå et element før browseren har haft fingre i det. Dit JavaScript med document.getElementById('dato') kan altså først udføres (logisk) efter elementet med id="dato" - enten i body.onload, eller blot længere nede i HTML-documentet, end det element den bruger.
Avatar billede kongfjong Nybegynder
11. januar 2007 - 09:52 #2
Det sjove er, at jeg har prøvet at smide selve javascript-koden, indenfor body'en:)
Avatar billede kongfjong Nybegynder
11. januar 2007 - 09:54 #3
Har prøvet noget så simpelt, som det her:

test.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Nyt dokument</title>

    <script type="text/javascript" src="scripts/test.js"></script>

</head>

<body>

<input type="button" onclick="testFnc();" value="test">

</body>
</html>

test.js:

function testFnc()
{
    document.getElementById() ? alert('yes') : alert('no');
}

Men også her kommer der "no":D
Avatar billede erikjacobsen Ekspert
11. januar 2007 - 09:58 #4
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Nyt dokument</title>

    <script type="text/javascript">
    function testFnc() {
    document.getElementById('fjong').value='kong';
    }
    </script>

</head>

<body>

<input type="button" id="fjong" onclick="testFnc();" value="test">

</body>
</html>
Avatar billede kongfjong Nybegynder
11. januar 2007 - 10:05 #5
Så kom den sgu... Måske man ikke kan teste på document.getElementById? Synes jeg bare jeg har gjort før:S
Avatar billede erikjacobsen Ekspert
11. januar 2007 - 10:25 #6
Jo, man kan teste på om funktionen findes - det gør den jo så i alle bare nogenlunde nyere browsere. Simplest:

    document.getElementById ? alert('yes') : alert('no');
Avatar billede kongfjong Nybegynder
11. januar 2007 - 10:51 #7
Ahhh okay, altså uden paranteser:)
Avatar billede kongfjong Nybegynder
11. januar 2007 - 10:51 #8
Tak for hjælpen:)
Avatar billede erikjacobsen Ekspert
11. januar 2007 - 11:05 #9
Godt. Svar selv, accepter eget svar. Jeg samler slet ikke på point.
Avatar billede kongfjong Nybegynder
07. august 2007 - 09:25 #10
Lukket:)
Avatar billede kongfjong Nybegynder
07. august 2007 - 09:26 #11
Lukket:)
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