Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    'value' è nullo o non è un oggetto

    Ciao.

    Cosa sbaglio in questo codice:?

    codice:
    <script language="javascript" type="text/javascript">
    <!--
    
    function calcola(frmObj, id)
    {
    
    var Tot_competenze = 0;
    var nelementi = document.getElementById("table3").rows.length-2;
    
    for ( var n = 1; n <= nelementi; n++ )
    
        {
            x = parseFloat(frmObj["CompetenzeExtra-" + n].value);
            Tot_competenze += ((isNaN(x))?0:x);
        } 
        
         alert("CompetenzeExtra-" + id)
         alert(Tot_competenze)
        
    
        frmObj.Tot_competenze.value = Tot_competenze.toFixed(2);  
        
      
    }
    // -->
    </script>
    
    <table border="0" id="table3">
    
    <input type="text" name="CompetenzeExtra-<%=Rs("ID")%>" size="10" value="<%=Rs("CompetenzeExtra")%>" readonly style="background-color: #C0C0C0" onkeyup="calcola(this.form, <%=Rs("ID")%>)">
    
    <input type="text" name="Tot_competenze" size="10" value="0.00" style="text-align: left" readonly style="background-color: #C0C0C0">
    Perchè dice 'value' è nullo o non è un oggetto sulla riga:

    codice:
    x = parseFloat(frmObj["CompetenzeExtra-" + n].value);

  2. #2
    prova così:

    codice:
    x = parseFloat(frmObj.elements["CompetenzeExtra-" + n].value);
    saluti

  3. #3
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da moaiamorfo
    prova così:

    codice:
    x = parseFloat(frmObj.elements["CompetenzeExtra-" + n].value);
    saluti

    ti ringrazio, ma non cambia nulla:

    codice:
      var frmObj["TotaleCompetenzeExtra-" + id].value = 0;
      var el = document.getElementById("table3").rows.length-2;
      
      for ( var n = 1 ; n <= el ; n++ )
    
        {
    
          x = parseFloat(frmObj.el["CompetenzeExtra-" + n].value);
            frmObj["TotaleCompetenzeExtra-" + n].value += ((isNaN(x))?0:x);
        }
     
      frmObj["TotaleCompetenzeExtra-" + id].value = frmObj["TotaleCompetenzeExtra-" + id].value.toFixed(2);

  4. #4
    perché usi el e non elements come ho scritto nel mio esempio?

    saluti

  5. #5
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da moaiamorfo
    perché usi el e non elements come ho scritto nel mio esempio?

    saluti
    Ho provato la funzione sia el che elements ma purtroppo non funziona.

    Grazie.

  6. #6
    allora prova a racchiudere i tuoi campi all'interno di un form:

    codice:
    <form id="formid">
    
    <input type="text" name="CompetenzeExtra-<%=Rs("ID")%>" size="10" value="<%=Rs("CompetenzeExtra")%>" readonly style="background-color: #C0C0C0" onkeyup="calcola(this.form, <%=Rs("ID")%> )">
    
    <input type="text" name="Tot_competenze" size="10" value="0.00" style="text-align: left" readonly style="background-color: #C0C0C0">
    
    </form>
    saluti

  7. #7
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    E' già così.

    I campi del form dinamico sono racchiusi all'interno di un form.

  8. #8
    codice:
    <input type="text" name="CompetenzeExtra-<%=Rs("ID")%>" size="10" value="<%=Rs("CompetenzeExtra")%>" readonly style="background-color: #C0C0C0" onkeyup="calcola(this.form, <%=Rs("ID")%>)">
    se effettivamente il codice è questo, allora i doppi apici che racchiudono ID vanno in conflitto con quelli che definiscono, per esempio, il valore dell'attributo name.

    saluti

  9. #9
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Guarda, ho semplificato la massimo così:

    codice:
    <html>
    
    <head>
    
    <script language="javascript" type="text/javascript">
    <!--
    
    function calcola(frmObj)
    {
      var Tot_competenze = 0;
     
      for ( var n = 1 ; n <= 10 ; n++ )
        {
          x = parseFloat(frmObj["CompetenzeExtra-" + n].value);
          Tot_competenze += ((isNaN(x)) ? 0 : x);
        }
     
      frmObj.Tot_competenze.value = Tot_competenze.toFixed(2);
    }
    // -->
    
    </script>
    
    <body>
    
    <form>
      <input type="text" name="CompetenzeExtra-1" size="10" onkeyup="calcola(this.form)">
      <input type="text" name="CompetenzeExtra-2" size="10" onkeyup="calcola(this.form)">
    ...
    ...
      <input type="text" name="CompetenzeExtra-9" size="10" onkeyup="calcola(this.form)">
      <input type="text" name="CompetenzeExtra-10" size="10" onkeyup="calcola(this.form)">
     
      <input type="text" name="Tot_competenze" size="10" value="0.00" style="text-align: left" readonly>
    </form>
    
    </body>
    
    </html>
    Ecco quello che devo fare:

    Ho un determinato numero di campi con nome "CompetenzeExtra-x" dove x è un numero incrementale da 1 a x, ma questo x massimo NON è fisso perchè lo genero dinamicamente tramite lo script lato-server che genera la pagina.

    Mi segui?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.