non funziona perchè lo script viene eseguito prima che il browser abbia interpretato il codice del form che segue.
Nel momento dell'esecuzione dello script la form non esiste ancora, e tantomeno il campo hidden!

quindi...

un tentativo:
codice:
<html>
    <head>
        <title>Titolo della pagina</title>
        <script type="text/javascript">
            function aggiornaCampo() {
                document.getElementById('abilitato').value='xxxxx';
            }
        </script>
    </head>
    <body onload="aggiornaCampo()">
        <form method="post" action="login.php" name="login">
            <input type="hidden" value="" id="abilitato" />
            <input type="submit" value="Invia" />
        </form>
    </body>
</html>
HTH
Zappa