Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Aggiungere/Rimuovere elementi completamente

    Devo creare un questionario dinamico.

    Ho una certa domanda a risposta multipla alla quale posso aggiungere o rimuovere le risposte.

    Ora, avrei bisogno di aggiungere un nuovo campo input e un paio di bottoni quando premo il tasto "Aggiungi risposta".

    Come posso fare, tenendo di conto che il numero di risposte non è definito ma è dinamico in base a quanti campi aggiunge l'utente?

    Per l'aggiunta non credo sia un problema.... basta un innerHTML per aggiungere elementi.
    Ma per rimuoverli?
    Io pensavo di definire un div (con ID) per ogni risposta e poi, tramite qualche funzione a me sconosciuta (), rimuovere completamente il Div specificato.

    E' possibile?
    Come?

    Grazie mille

  2. #2

  3. #3
    Perfetto

    Adesso però ho problemi con l'aggiunta di un elemento.
    Il problema è con la modifica dell'elemento.

    Add() clona l'elemento e inizia a scorrere i vari elementi figli, in modo da cambiarne il nome (nelle proprietà dove compare la lettera 'X' si deve sostituire un numero progressivo).

    Pare funzionare tutto ma se passo un 'children' a 'setAtt', all'alert di 'A' mi dice che è 'null'
    Mentre se proprio prima dell'istruzione stampo il 'children[i]' passato non mi restituisce 'null'!!

    Come mai?!

    Qua il codice delle funzioni
    codice:
    function setAtt(attribute, replacer, to)
    {		
    	var A = to.getAttribute(attribute);
    	alert(A);
    	A = A.replace("X",replacer);
    	to.setAttribute(attribute, to.getAttribute(attribute).replace("X",replacer));
    }
    
    function Add(num)
    {
    	var rispDiv = document.getElementById("Risposte"); // Div contenente le risposte
    	var Div = document.getElementById("RispostaX"); // Modello da clonare
    
        nDiv = Div.cloneNode(true);
    	
    	// Ridefinisco gli attributi degli elementi sostituendo la generica X
    
    
    /*
    <span id="numX">X</span> - <input type="text" name="RispostaX" value="" class="testo" />
    	[img]<%= BtnPlus %>[/img]
    	[img]<%= BtnMinus %>[/img]
    */
    
    	setAtt("id",J+1,nDiv);
    
    	if (nDiv.hasChildNodes())
    	// So, first we check if the object is not empty, if the object has child nodes
    	 {
    	   var children = nDiv.childNodes;
    	   for (var i = 0; i < children.length; i++) 
    	   {
    			switch(children[i].tagName) 
    			{
    			  
    			  case "SPAN":
    			  alert(children[i]);
    				setAtt("name",J+1,children[i]);
    				children[i].innerHTML = J+1;
    			  break; //si ferma qui
    
    			  case "INPUT":
    			  alert("WA!");
    				setAtt("name",J+1,children[i]);
    				setAtt("id",J+1,children[i]);
    			  break; //si ferma qui
    			  
    			  case "IMG":
    			  alert("WI!");
    			    setAtt("onClick",J+1,children[i]);
    			  break; //si ferma qui
    
    			  default:
    			  alert("WO!");
    			    //niente
    			};
    		}
    	 }
    	 
    	// Aggiungo l'elemento creato alla lista
    	rispDiv.appendChild(nDiv); 
    	
    	J += 1;
    }
    Aiutatemi vi prego!

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.