Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    [jQuery] come faccio ad aggiungere/rimuovere campi mediante input radio ?

    Salve a tutti,
    vorrei realizzare un piccolo script che permetta di aggiungere e rimuovere degli input di tipo radiobox, attraverso jQuery.
    Quel poco che ho realizzato io mi permette solo di aggiungere dei campi finchè non arrivo al massimo. Se poi voglio dimunuire i campi, ovviamente non so come farlo.

    Il funzionamento è questo: l'utente sceglie quanti campi compilare scegliendo da 0 a 4.
    Potete vedere quello che ho realizzato io cliccando qui.

    Vorrei che, per esempio, se da 3 campi si passa a 1, mi elimini il 2° e 3° campo, magari giocando anche sull'id del

    .
    Vorrei evitare di adottare la soluzione tipo
    codice:
    $('p:last').remove();
    perchè ho anche altre

    con altri contenuti.
    Cosa mi consigliate?
    "To iterate is human, to recurse, divine." (R.(Heller))

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    dovrebbe essere qualcosa del genere:

    codice:
    $('.email').click(function()
    {
    	$("#aggiungi").empty();
    	for(i=0;i<$(this).val();i++){
    	      $("#aggiungi").append('<p id="campoExtra'+i+'">Email ' +i+ ': <input type="text" name="campo['+i+']" class="campo['+i+']" /></p>');
            }
    });

  3. #3
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Questa soluzione l'avevo già applicata solo che ogni volta ricrea tutti i 3 campi.
    Ammettiamo il caso che genero un campo e lo riempio, poi dopo ne genero un altro: ecco che me li ricrea daccapo sovrascrivendo il primo campo riempito.
    Io invec vorrei che aggiungesse e rimuvoesse i campi in base a cosa ho selezionato.
    Cioè se inizialmente ho selezionato 3 campi e poi ne seleziono 1, allora mi deve togliere il campo2 e il campo3.
    Nel frattempo sto procedendo, magari ci arrivo pure da solo. Boh!
    "To iterate is human, to recurse, divine." (R.(Heller))

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    prova cosi:

    codice:
    var lastChecked=0;
            
                $('.email').click(function()
                {
                  if($(this).val() > lastChecked) {                    
                          for(i=lastChecked; i<$(this).val(); i++)
                          {
                              $("#aggiungi").append('<p class="campoExtra">Email ' +i+ ': <input type="text" name="campo['+i+']" class="campo" /></p>');
                          }
                    }else{
                         for(i=lastChecked; i>=$(this).val(); i--)
                          {
                              $(".campoExtra:eq("+i+") , .campo:eq("+i+")").remove();
                          }
                   }
            lastChecked = $(this).val();
                });

  5. #5
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    nel frattempo ero arrivato ad una soluzione funzionante, ma devo dire che anche la tua funziona e con molte meno righe di codice!!!
    Ora dovrei solo trovare il modo di aggiungere e rimuovere campi nel caso in cui una parte di essi sià già presente al caricamento della pagina.
    Mi spiego meglio: ipotizzando una pagina in cui un utente immette delle email (usando il tuo script è perfetto) ed una pagina di modifica delle email inserite, cioè: "questa sono le email che hai inserito: puoi aggiungerne altre o rimuoverle".
    In quel caso si avrebbe a che fare con campi che già risiedono nella pagina.
    Non so se mi sono spiegato.
    "To iterate is human, to recurse, divine." (R.(Heller))

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.