Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19

Discussione: input text dinamiche

  1. #11
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Posta il codice (e non dimenticare di metterlo tra i tag CODE )
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  2. #12
    <code>
    <!- PAGINA HTML ->
    <!- DOCTYPE HTML ->
    <html>
    <head>
    <title>PROVA</title>
    <STYLE TYPE="text/css">
    <!--
    TD{font-family: Verdana; font-size: 10pt}
    --->
    </STYLE>
    <script type="text/javascript">

    var riga=0;
    /* funzione Add */

    function Add(id_table)
    {
    riga=riga+1;
    var table = document.getElementById(id_table);
    var tbody = table.getElementsByTagName('tbody')[0];
    var tr = document.createElement("tr");
    for(var i=0; i<7; i++)
    {
    if(i!=4)
    {
    var td = document.createElement('td');
    var tx = document.createElement("input");
    if(i>4)
    {
    tx.type="text";
    tx.readOnly="true";
    tx.name="id"+i+riga;
    tx.value=tx.name;
    }
    else
    {
    tx.type="text";
    tx.value="0";
    tx.name="id"+i+riga;
    tx.value=tx.name;
    }
    td.appendChild(tx);
    tr.appendChild(td);
    }
    else
    {
    td = document.createElement('td');
    tx = document.createElement("select");
    tx.options[tx.length] = new Option('abete kvh');
    tx.options[tx.length] = new Option('abete lamellare');
    td.appendChild(tx);
    tr.appendChild(td);
    }
    }
    tbody.appendChild(tr);
    }


    /* funzione calcola */

    function calcola()
    {
    selIdx = document.forms[0].materiale.selectedIndex;
    switch (selIdx)
    { case 0: { price=325;
    break;
    }
    case 1: { price=396;
    break;
    }
    }

    metricubi=form1.numero.value*(form1.larg.value/100)*(form1.alt.value/100)*(form1.lung.value/100);
    form1.mc.value=eval(metricubi);
    for(var k=1;k<riga+1;k++)
    { var x = 1;
    for(var j=0;j<4;j++)
    { var nome="id"+j+k;
    alert(nome);
    x = x * parseFloat(document.getElementById(nome).innerText );
    alert(x);
    }
    var destino = "id5"+k;
    document.getElementById(destino).innerText = x;
    }

    /*for(var k=1;k<riga+1;k++)
    { for(var j=0;j<4;j++)
    { var nome="id"+j+k;
    alert(nome);
    }
    }*/
    }


    </script>
    </head>
    <body>
    <form name="form1">
    <font face="Verdana" size="3">
    <TABLE borderColor=blue cellSpacing=0 cellPadding=10 width="75%"
    align= center border=4>
    <tr><td>
    <br>
    <p align="center">
    <font size="3">
    <b>- PROVA-<br>
    </b></font></p><br>
    <hr color="blue">
    <p align="center">
    <br>
    <b>1) Inserire dimensioni legname e numero pezzi</b>
    <br>
    <table border="1" align="center" id="my_table">
    <tr>
    <td align="center">n° Pezzi:</td>
    <td align="center">Larghezza (cm):</td>
    <td align="center">Altezza (cm):</td>
    <td align="center">Lunghezza (cm):</td>
    <td align="center">Materiale (lam/kvh):</td>
    <td align="center">Metri cubi :</td>
    <td align="center">Importo spese (€):</td>
    <td align="center"><input type="button" value="Add" onclick="Add('my_table')" /></td>
    </tr>

    <tr>
    <td align="center"><input type="text" name="numero" id="numero" value="0"></td>
    <td align="center"><input type="text" name="larg" id="larg" value="0"></td>
    <td align="center"><input type="text" name="alt" id="alt" value="0"></td>
    <td align="center"><input type="text" name="lung" id="lung" value="0"></td>
    <td><select name="materiale" onchange="changeTest1()">
    <option value="1">abete kvh</option>
    <option value="2">abete lamellare</option>
    </select></td>
    <td align="center"><input type="text" name="mc" id="mc" readOnly></td>
    <td align="center"><input type="text" name="importo" id="importo" readOnly></td>
    </tr>
    </table>

    <br><br>
    <input type="button" value="Calcola importo spese travi" onclick="calcola();" />
    </font>
    </p>
    <br><br>
    <br><br>
    <hr color="blue">

    <p align="right">
    <b>
    IMPORTO SPESE TOTALI:<input type="text" name="totale" id="totale" readonly><br><br>
    </b>
    </p>
    <br>
    <hr color="blue">
    <p align="right">
    </font>
    </p>
    </td></tr><table>
    </form>
    </body>
    </html>

    </code>

    Grazie per la pazienza.


  3. #13
    Per i tag ho capito adesso scusate..

  4. #14
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Non hai letto il mio penultimo messaggio.

    var destino = "id5"+k; <= forse il problema è dovuto al valore di destino. Controlla che sia l'id che desideri. Poi ne riparliamo.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #15
    Ciao, sì, il risultato della moltiplicazione va messo in id51,id52,id53,id54,id55 ecc. Ho capito il codice che mi hai postato, non capisco perche' mi butta fuori dal for. Sembra legga id01 e poi esca. Boh??

  6. #16
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Copia il sorgente della pagina e postalo.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #17
    Ok, grazie. Porta pazienza..

    codice:
    <script type="text/javascript"> 
     
    var riga=0; 
    /* funzione Add */ 
     
    function Add(id_table) 
        { 
        riga=riga+1; 
        var table = document.getElementById(id_table); 
        var tbody = table.getElementsByTagName('tbody')[0];  
        var tr = document.createElement("tr"); 
        for(var i=0; i<7; i++) 
            { 
            if(i!=4) 
                { 
                var td = document.createElement('td'); 
                var tx = document.createElement("input"); 
                if(i>4) 
                    { 
                    tx.type="text"; 
                    tx.readOnly="true"; 
                    tx.name="id"+i+riga; 
                    tx.value=tx.name;  
                    } 
                else     
                    { 
                    tx.type="text"; 
                    tx.value="0"; 
                    tx.name="id"+i+riga; 
                    tx.value=tx.name;  
                    } 
                td.appendChild(tx); 
                tr.appendChild(td); 
                } 
            else 
                {     
                    td = document.createElement('td'); 
                    tx = document.createElement("select"); 
                    tx.options[tx.length] = new Option('abete kvh'); 
                    tx.options[tx.length] = new Option('abete lamellare'); 
                    td.appendChild(tx); 
                    tr.appendChild(td); 
                }     
            } 
        tbody.appendChild(tr); 
        } 
     
     
    /* funzione calcola */ 
     
    function calcola() 
    { 
        selIdx = document.forms[0].materiale.selectedIndex; 
        switch (selIdx) 
            {    case 0:        { price=325; 
                          break; 
                        } 
                case 1:        { price=396; 
                        break; 
                        } 
            } 
      
    metricubi=form1.numero.value*(form1.larg.value/100)*(form1.alt.value/100)*(form1.lung.value/100); 
    form1.mc.value=eval(metricubi); 
    imp=price*form1.mc.value; 
    form1.importo.value=eval(imp); 
     
    for(var k=1;k<riga+1;k++) 
        { var x = 1; 
          for(var j=0;j<4;j++) 
            { var nome="id"+j+k; 
              alert(nome); 
              x = x * parseFloat(document.getElementById(nome).innerText ); 
              alert(x); 
            } 
          var destino = "id5"+k; 
          document.getElementById(destino).innerText = x; 
        } 
    }

  8. #18
    Questo problema l'ho risolto, ho solo cambiato innerText con value e alla creazione della input text dinamica, anzichè indirizzare il nome ho indirizzato l'id. E' per quello che usciva dal for. Grazie badaze, sei un grande.

  9. #19
    Ora ho inserito una funzione che avevo trovato in internet che non permette l'inserimento di determinati caratteri.
    La funzione va', lho provata con una input text non dinamica e funziona.
    Pero' non so come mai ma in quelle dinamiche non funziona.
    Come si richiama l'evento onkeyup nelle input text dinamiche??
    Io ho scritto

    codice:
    tx.onkeyup="char_consentiti(this)";
    e la funzione è questa:

    codice:
    function char_consentiti(campo) {
                    // espressione regolare
                    var re = new RegExp("^[0-9\.]+$", "");
                    // recupero il valore del campo
                    var valore = campo.value;  
                    // ciclo le lettere del valore e le verifico
                    for ( var i = 0; i < valore.length; i++ ) {
                        // se non è un carattere consentito
                        if (!valore.charAt(i).match(re)) {
                            // aggiorno il valore del campo
                            campo.value = valore.substring(0, i);
                            // esco
                            return;
                        }   
                    }
                }
    Dove sbaglio??

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.