Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    oggetto nullo o non esistente

    Premesso che sono alle prime armi, non riesco a capire dove sbaglio nel codice perchè la funzione che ho scritto funziona la prima riga dello script che dovrebbe spuntare una casella non funziona il debugger mi dice che non esiste quell'oggetto ma non capisco perchè nella funzione lo vede allora...
    codice:
    <!DOCTYPE html>
     <html>
     <head>
      <title>prova form quiz</title>
      <script type="text/javascript">
      <!--
      window.document.quiz.r1[1].checked = true;
      function calcola_punteggio ()  {
       var punteggio = 0
       if(window.document.quiz.r1[0].checked)
       {
       punteggio = punteggio + 1;
       }
       if(window.document.quiz.r2[1].checked)
       {
       punteggio = punteggio + 1;
       }
      window.document.quiz.score.value = punteggio;
      }
      //-->
      </script>
     </head>
     <body>
      <form name="quiz">
      <ul>[*]<h2>1</h2>
        <ul>[*]<input type="radio" name="r1" />vero[*]<input type="radio" name="r1" />falso[/list][*]<h2>2</h2>
        <ul>[*]<input type="radio" name="r2" />vero 
    	[*]<input type="radio" name="r2" />falso[/list][/list]
       <input type="button" value="calcola punteggio" onClick="calcola_punteggio();" />
       <input type="reset" value="reset" />
       <input type="text" name="score" value="" />
      </form>
     </body>
     </html>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    codice:
    <!DOCTYPE html>
     <html>
     <head>
      <title>prova form quiz</title>
      <script type="text/javascript">
      <!--
    onload=function(){
      document.quiz.r1[1].checked = true;
    }
      function calcola_punteggio ()  {
       var punteggio = 0
       if(document.quiz.r1[0].checked)
       {
       punteggio++;
       }
       if(document.quiz.r2[1].checked)
       {
       punteggio++;
       }
      document.quiz.score.value = punteggio;
      }
      //-->
      </script>
     </head>
     <body>
      <form name="quiz">
      <ul>[*]<h2>1</h2>
        <ul>[*]<input type="radio" name="r1" />vero[*]<input type="radio" name="r1" />falso[/list][*]<h2>2</h2>
        <ul>[*]<input type="radio" name="r2" />vero 
    	[*]<input type="radio" name="r2" />falso[/list][/list]
       <input type="button" value="calcola punteggio" onClick="calcola_punteggio();" />
       <input type="reset" value="reset" />
       <input type="text" name="score" value="" />
      </form>
     </body>
     </html>
    L'errore era dovuto al fatto che richiamavi l'elemento r1[1] quando ancora non era presente nel documento rachiudendolo nel evento onload lo stesso viene richiamato solo dopo che tutto il documento è stato caricato, non serve specificare window (essendo globale è intrinseco).
    Consiglio infarinatura delle basi cos'è un evento come funziona js guide
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    ok grazie della risposta lo so che sono delle domande banali ma il fatto è che sto studiando da solo e a volte mi vengono dei dubbi che non so risolvere. Se non ho capito male la funzione funzionava perchè veniva chiamata quando tutta la pagina era già caricata mentre la spunta veniva eseguita subito ma non c'era ancora l'oggetto caricato sulla pagina, con onLoad funziona perchè esegue dopo il caricamento della pagina

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Esatto, quando riscontri errore oggetto nullo significa che stai cercando un elemento o che non ancora caricato o non è presente (ad esempio richiamato via ajax) nel documento.
    Visto che stai imparando apprendi la sintassi DOM document.getElementBy invece della sintassi documet.nomeform.nomeoggetto.attributo meno duttile essendo più vecchia.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.