Visualizzazione risultati 1 fino 4 di 4

Discussione: Js aggiungere campi input

  1. #1
    Guest

    Predefinito Js aggiungere campi input

    Ciao a tutti...
    questo codice dovrebbe aggiungere dei campi input file in fatti funziona ma l'unica cosa che ne aggiunge uno solo, io vorrei fare che ne aggiungesse 5
    ogni volta con capisco perché for non funziona...

    la seconda cosa quando vado a modificare il codice cioè il Dom vorrei che ad ogni </tr> vada a capo e possibile farlo col js.
    Codice PHP:
    <script type="text/javascript">
    var
    numero = 1;
    function
    Aggiungi(id_tabella,numero_input){
    numero++;
    for(
    i=0; i<numero_input; i++){
    var
    tr = document.createElement("tr");
    var
    td = document.createElement("td");
    var
    td2 = document.createElement("td");
    var
    input = document.createElement("input");
    tr.appendChild(td);
    tr.appendChild(td2);
    td.appendChild(document.createTextNode(numero));
    input.setAttribute("type","file");
    input.setAttribute("name","file[]");
    td2.appendChild(input);
    }
    document.getElementById(id_tabella).getElementsByTagName("tbody")[0].appendChild(tr);
    }
    </script>
    <a href="javascript:Aggiungi('table',5);">Aggiungi</a>

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Ne aggiunge solo uno perchè appendi l'elemento tr dopo il for, invece devi farlo all'interno:
    Codice HTML:
    <script type="text/javascript">
    var numero = 1;
    function Aggiungi(id_tabella,numero_input){
    numero++;
    for(i=0; i < numero_input; i++){
    var tr = document.createElement("tr");
    var td = document.createElement("td");
    var td2 = document.createElement("td");
    var input = document.createElement("input");
    tr.appendChild(td);
    tr.appendChild(td2);
    td.appendChild(document.createTextNode(numero));
    input.setAttribute("type","file");
    input.setAttribute("name","file[]");
    td2.appendChild(input);
    document.getElementById(id_tabella).getElementsByTagName("tbody")[0].appendChild(tr);
    }
    }
    </script>
    <a href="javascript:Aggiungi('table',5);">Aggiungi</a>  
    (Impara ad indentare il codice, altrimenti così non si capisce niente!)

  3. #3
    Guest

    Predefinito

    si ma come dici tu quando stampa la variabile numero la ripete 5 volte sempre la stessa..
    cioè
    5 volte 2
    5 volte 3
    e cosi via...
    risolto in questo modo che ne pensi
    Codice PHP:
    <script type="text/javascript">
    var
    numero = 6;
    function
    Aggiungi(id_tabella,numero_input){
    for(
    i=0; i < numero_input; i++){
    var
    tr = document.createElement("tr");
    var
    td = document.createElement("td");
    var
    td2 = document.createElement("td");
    var
    input = document.createElement("input");
    tr.appendChild(td);
    tr.appendChild(td2);
    td.appendChild(document.createTextNode(numero++));
    input.setAttribute("type","file");
    input.setAttribute("name","file[]");
    td2.appendChild(input);
    document.getElementById(id_tabella).getElementsByTagName("tbody")[0].appendChild(tr);
    }}
    </script>
    per la seconda cosa e possibile...^^
    Ultima modifica di hotmailpower : 16-05-2010 alle ore 11.57.13

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Temo che la tua seconda richiesta non sia possibile, per due motivi (collegati tra loro):
    - il primo è che con i metodi DOM vai a modificare la struttura logica del documento (ovvero, come ha interpretato il tuo browser il codice HTML della pagina) e non lo stesso codice HTML
    - il secondo è che non avresti modo di verificarlo... se provi a scaricare il sorgente della pagina noterai che resta esattamente come il browser lo ha scaricato la prima volta (e no, DOM Inspector di Firefox lavora ugualmente sulla struttura logica della pagina)

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •