Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di jspippo
    Registrato dal
    Jul 2005
    Messaggi
    358

    [javascript] campi dinamici "assenti"

    Ciao

    ho un problema con i campi dinamici.

    Li creo con questo codice:

    codice:
    function accoda(){
    	if(document.createElement && document.getElementById && document.getElementsByTagName) {
    		// crea elementi
    		var oTr=document.createElement("TR");
    		var oTd1=document.createElement("TD");
    		var oTd2=document.createElement("TD");
    		var oTd3=document.createElement("TD");
    		var oTd4=document.createElement("TD");
    		var oField=document.createElement("INPUT");
    		var oFieldB=document.createElement("INPUT"); 
    		var oButt=document.createElement("INPUT");
    
    		// setta attributi
    		oField.setAttribute("type","text");
    		oField.setAttribute("name=DescrizioneMateriale"+num,"");
    		oField.setAttribute("id","DescrizioneMateriale");
    		oField.setAttribute("value"," ");
    		oField.setAttribute("readOnly","readOnly");
    		oFieldB.setAttribute("type","text");
    		oFieldB.setAttribute("size","5");
    		oFieldB.setAttribute("name=Quantita"+num,""); 
    		oButt.setAttribute("type","button");
    		oButt.setAttribute("value","rimuovi");
    		oButt.setAttribute("disabled","disabled");
    		oButt.setAttribute("name=rimuovi","");
    		oButt.setAttribute("id","rimuovi");
    		oTd1.setAttribute("align","center");
    		oTd2.setAttribute("align","center");
    		oTd3.setAttribute("align","center");
    		oTd4.setAttribute("align","center");
    		
    		
    		
    		// setta gestore evento
    		if(oButt.attachEvent) oButt.  attachEvent('onclick',function(e){rimuovi(e);})
    		else if(oButt.addEventListener) oButt.  addEventListener('click',function(e){rimuovi(e);},false)
    		
    		//evenyo al campo di testo
    		if(oField.attachEvent) oField.  attachEvent('onClick',function(){sel();})
    		else if(oField.addEventListener) oField.  addEventListener('Click',function(){sel();},false)
    
    
    		// appendi al relativo padre
    		oTd1.appendChild(oField);
    		oTd2.appendChild(oFieldB); 
    		oTd3.appendChild(oButt);
    		oTr.appendChild(oTd1);
    		oTr.appendChild(oTd2);
    		oTr.appendChild(oTd3);
    		oTr.appendChild(oTd4);
    		document.getElementById('tabella').getElementsByTagName('TBODY')[0].appendChild(oTr);
    
    		// incrementa variabile globale
    		num++
    	}
    }
    Fino a qua nessun problema, infatti le crea tranquillamente.

    Allora: se da i.e. visualizzo il codice, i campi aggiunti in questo modo non me li visualizza.

    In FF questo codice non funziona affatto. Ma non è un problema.

    Quando cerco di recuperare il valore dei campi da una pagina JSP, mi da null, quindi l'unica conclusione è che i campi non esistono.

    Avete già affrontato questo problema? ho spulciato da cima a fondo i vari post ma in nessuno ho trovato la soluzione.

    Grazie a tutti

  2. #2

    Re: [javascript] campi dinamici "assenti"

    Il fatto che non li vedi nel sorgente è normale, è il sorgente di mioFile.html, non di quello che tu hai dinamicamente modificato.

    Ma l'albero del documento in effetti E' stato modificato.
    E' un peccato che non ti importi che funzioni su Firefox, perché con questo browser avresti potuto usare il suo DOM Inspector per vederne le modifiche.

    Ad ogni modo, mi pare di vedere che hai assegnato contemporaneamente attributo e valore in alcune istruzioni:

    Originariamente inviato da jspippo
    codice:
    [cut]
    oField.setAttribute("name=DescrizioneMateriale"+num,"");
    oFieldB.setAttribute("name=Quantita"+num,""); 
    oButt.setAttribute("name=rimuovi","");
    dovrebbe funzionare con:
    codice:
    oField.setAttribute("name","DescrizioneMateriale"+num);
    oFieldB.setAttribute("name","Quantita"+num); 
    oButt.setAttribute("name","rimuovi");
    Spero di aiuto.
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ma dovrebbe funzionare anche su ffox, quel codice l' ho scritto su ff e poi adattato a IE

    certo che questo e' completamente errato
    oField.setAttribute("name=DescrizioneMateriale"+nu m,"");
    come ti e' gia' stato fatto notare

  4. #4
    Utente di HTML.it L'avatar di jspippo
    Registrato dal
    Jul 2005
    Messaggi
    358
    Ciao.

    Allora:

    il codice l'ho modificato perchè quando aggiungo i campi l'attributo "name" e anche qualche altro, non lo inserisce nel tag INPUT creato.

    Se non ho capito mi state dicendo che è normale che nel codice html della pagina non si vede e va bene.

    Ma allora come faccio a recuperare i dati che inserisco all'interno della casella?

    E poi, l'ho provato anche in FireFox ( non l'ho escluso a priori ) ma non funziona. Premo il tasto aggiungi ma la funzione accoda() non me la fa mica...

    Che cosa mi suggerite? altrimenti dovrei gestirmi questo form in altra maniera..


    grazie a tutti e due

  5. #5
    Originariamente inviato da jspippo
    il codice l'ho modificato perchè quando aggiungo i campi l'attributo "name" e anche qualche altro, non lo inserisce nel tag INPUT creato.
    scusa, ma tu come fai ad averlo notato?

    come faccio a recuperare i dati che inserisco all'interno della casella?

    E poi, l'ho provato anche in FireFox ( non l'ho escluso a priori ) ma non funziona. Premo il tasto aggiungi ma la funzione accoda() non me la fa mica...
    Non avendo visto la tua pagina, e non sapendo quindi cosa vuoi fare, tiro un po' ad indovinare.
    Deduco dalla domanda che i due problemi siano correlati: tu hai specificato una form e relativi method e action, vero!?

    Nota che Explorer, notoriamente un browser a cappella, mostra gli elementi input anche se hai omesso di specificare la form. Firefox non è così bacato, per fortuna.
    L'(X)HTML non è il paese del fai-da-te-le-tue-regole.

    Detto questo, nel caso avessi indovinato, catturi i dati immessi nei campi guardando la request inviata dalla form, ovviamente facendo attenzione al method definito: get o post.

    Guardando lo script noto che hai inserito un campo "readonly", ed un button "disabled" e senza azioni assegnate. Ora, se non ho capito male, questo codice è originariamente stato scritto da Xinod, presumibilmente come codice di esempio. Ti servirà quindi intervenirci un po' per impiegarlo in un ambiente reale.

    Ciao!
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  6. #6
    Utente di HTML.it L'avatar di jspippo
    Registrato dal
    Jul 2005
    Messaggi
    358
    Ciao.

    Allora:

    il codice l'ho modificato perchè quando aggiungo i campi l'attributo "name" e anche qualche altro, non lo inserisce nel tag INPUT creato.

    scusa, ma tu come fai ad averlo notato?
    L'ho notato facendo così:

    1)Ho creato i campi, con le relative righe di tabella, con il pulsante aggiungi (2 o 3);
    2)Ho selezionato il tutto dal browser;
    3)L'ho incollato su un software per pagine web ed effettivamente mi dava il tutto correttamente (campi e righe d tabella aggiunte)
    4)Ho visualizato il codice html e la ho visto quello che inseriva.

    Provate a fare questa prova poi mi direte, magari sto sbagliando io.

    tu hai specificato una form e relativi method e action, vero!?
    Si è tutto correttamente impostato.

    Detto questo, nel caso avessi indovinato, catturi i dati immessi nei campi guardando la request inviata dalla form, ovviamente facendo attenzione al method definito: get o post.
    Che io sappia è impossibile o almeno ignoro se c'è la possibilità ri recuperare i dati da un form senza che i campi, in questo caso di testo, abbiano un nome con l'attributo "name".

    codice:
    Guardando lo script noto che hai inserito un campo "readonly", ed un button "disabled"
    Queste impostazioni mi servono per altri scopi e mi funzionano correttamente.

    Spero di aver spiegato tutto, grazie ancora e fatemi sapere

  7. #7
    Utente di HTML.it L'avatar di jspippo
    Registrato dal
    Jul 2005
    Messaggi
    358
    Ciao, novità?

  8. #8
    Originariamente inviato da jspippo
    novità?
    jspippo, non so che aggiungere.

    Ho fatto un piccolo test dello script, con le modifiche che ti avevo detto, in locale e funziona, anche in Firefox.

    Che gli attributi name=valore vengono settati correttamente lo vedo dal DOM Inspector, lo trovo più semplice dei tuoi passaggi, pure ingegnosi

    Ciao!
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  9. #9
    Utente di HTML.it L'avatar di jspippo
    Registrato dal
    Jul 2005
    Messaggi
    358
    Grazie lo stesso. Allora sarà qualche impostazione del browser. Ci risbatto un po la testa altriemnti continuo con un'altra soluzione.

    Grazie ancora

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.