Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    19

    Eventi su oggetti aggiunti via DOM

    Ciao a tutti
    In due parole spiego il mio problema: ho una tabella html con due righe, ognuna delle quali ha tre celle contenenti ciascuna un input type="text". Mediante javascript, aggiungo alla tabella un'altra riga analoga alle altre. Nell'evento onblur di uno dei tre input, viene chiamata una funzione javascript; ebbene, nelle prime due righe, l'evento si scatena mentre per le altre, aggiunte via javascript, niente da fare.
    Inoltre, mediante l'istruzione document.getElementById("tabella").innerHTML, dopo aver aggiunto la riga, il codice Html visualizzato è corretto, però, come detto prima, l'evento non si scatena!!!

    Qualcuno ha dei suggerimenti utili?

    Ecco il codice che aggiunge la riga:
    function aggiungiRiga() {
    contatore++;

    var tbody = document.getElementById("tabella").getElementsByTa gName("TBODY")[0];
    var nodoTR = document.createElement("tr");
    ////////////////////////////////
    /////////// NODO TD1 ///////////
    ////////////////////////////////
    var nodoTD1 = document.createElement("td");
    // Creo nodo Input Importo Rata
    var nodoInputImporto = document.createElement("input");
    // Attributo TYPE
    var nodoAttributoTypeImporto = document.createAttribute("type");
    nodoAttributoTypeImporto.nodeValue = "text";
    nodoInputImporto.setAttributeNode(nodoAttributoTyp eImporto);
    // Attributo NAME
    var nodoAttributoNameImporto = document.createAttribute("name");
    nodoAttributoNameImporto.nodeValue = "strImportoRata_"+contatore;
    nodoInputImporto.setAttributeNode(nodoAttributoNam eImporto);
    // Attributo ID
    var nodoAttributoIDImporto = document.createAttribute("id");
    nodoAttributoIDImporto.nodeValue = "strImportoRata_"+contatore;
    nodoInputImporto.setAttributeNode(nodoAttributoIDI mporto);
    // Attributo VALUE
    var nodoAttributoVALUEImporto = document.createAttribute("value");
    nodoAttributoVALUEImporto.nodeValue = "";
    nodoInputImporto.setAttributeNode(nodoAttributoVAL UEImporto);
    // Appendo il nodo INPUT al Nodo TD1
    nodoTD1.appendChild(nodoInputImporto);
    ////////////////////////////////
    /////////// NODO TD2 ///////////
    ////////////////////////////////
    var nodoTD2 = document.createElement("td");
    // Creo nodo Input Data Scadenza
    var nodoInputData = document.createElement("input");
    // Attributo TYPE
    var nodoAttributoTypeData = document.createAttribute("type");
    nodoAttributoTypeData.nodeValue = "text";
    nodoInputData.setAttributeNode(nodoAttributoTypeDa ta);
    // Attributo NAME
    var nodoAttributoNameData = document.createAttribute("name");
    nodoAttributoNameData.nodeValue = "strDataScadenza_"+contatore;
    nodoInputData.setAttributeNode(nodoAttributoNameDa ta);
    // Attributo ID
    var nodoAttributoIDData = document.createAttribute("id");
    nodoAttributoIDData.nodeValue = "strDataScadenza_"+contatore;
    nodoInputData.setAttributeNode(nodoAttributoIDData );
    // Attributo ONBLUR
    var nodoAttributoONBLURData = document.createAttribute("onblur");
    nodoAttributoONBLURData.nodeValue = "controllaData(this)";
    nodoInputData.setAttributeNode(nodoAttributoONBLUR Data);
    // Attributo VALUE
    var nodoAttributoVALUEData = document.createAttribute("value");
    nodoAttributoVALUEData.nodeValue = "";
    nodoInputData.setAttributeNode(nodoAttributoVALUED ata);
    // Appendo il nodo INPUT al Nodo TD2
    nodoTD2.appendChild(nodoInputData);
    ////////////////////////////////
    /////////// NODO TD3 ///////////
    ////////////////////////////////
    var nodoTD3 = document.createElement("td");
    // Creo nodo Input Codice Settore
    var nodoInputSettore = document.createElement("input");
    // Attributo TYPE
    var nodoAttributoTypeSettore = document.createAttribute("type");
    nodoAttributoTypeSettore.nodeValue = "text";
    nodoInputSettore.setAttributeNode(nodoAttributoTyp eSettore);
    // Attributo NAME
    var nodoAttributoNameSettore = document.createAttribute("name");
    nodoAttributoNameSettore.nodeValue = "strCodSettore_"+contatore;
    nodoInputSettore.setAttributeNode(nodoAttributoNam eSettore);
    // Attributo ID
    var nodoAttributoIDSettore = document.createAttribute("id");
    nodoAttributoIDSettore.nodeValue = "strCodSettore_"+contatore;
    nodoInputSettore.setAttributeNode(nodoAttributoIDS ettore);
    // Attributo VALUE
    var nodoAttributoVALUESettore = document.createAttribute("value");
    nodoAttributoVALUESettore.nodeValue = "";
    nodoInputSettore.setAttributeNode(nodoAttributoVAL UESettore);
    // Attributo MAXLENGTH
    var nodoAttributoMAXLENGTHSettore = document.createAttribute("maxLength");
    nodoAttributoMAXLENGTHSettore.nodeValue = "1";
    nodoInputSettore.setAttributeNode(nodoAttributoMAX LENGTHSettore);
    // Appendo il nodo INPUT al Nodo TD3
    nodoTD3.appendChild(nodoInputSettore);
    nodoTR.appendChild(nodoTD1);
    nodoTR.appendChild(nodoTD2);
    nodoTR.appendChild(nodoTD3);
    tbody.appendChild(nodoTR);
    alert(document.getElementById("tabella").innerHTML );
    }

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    i gestori evento non sono attributi e non andrebbero settati via setAttribute

    qui ci sono due dritte
    http://forum.html.it/forum/showthrea...2#post10856782

    ciao

    P.s. il codice la prossima volta per favore scrivilo tra [ code] [ /code] o [ php] [ /php] (senza spazio),
    non formattato e' quasi illegibile

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