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

    [Jquery] clonare più volte

    Stavo cercando di scrivere uno script

    in cui a seconda di un valore inserito da un utente in <input type="text" />

    un altro campo venga clonato (<select></select>)
    in modo che ne vengano visualizzati tanti quanti specificati dall'utente... (che può aggiungere numeri compresi tra 1 e 9)

    All'inizio avevo pensato che un paio di cicli di FOR potessero bastare (uno per inserire i nuovi campi ed uno per eliminarli)

    Mi son presto resa conto che non era così semplice, ho aggiunto momentaneamente gli IF so che non è molto elegante, ma nella disperazione uno tenta e quando funziona rende lo script... come dire più agibile!

    Al momento dopo mille modifiche lo script è questo, che funziona correttamente solo il primo giro...
    cioè si parte che il valore di default è 1
    se si aumenta (es. inserisce 7) -- > funziona correttamente
    se si diminuisce il numero precedente (es. inserisce 4) -- > funziona correttamente
    se si ri-aumenta (es. inserisce 6) -- > NON FUNZIONA PIU' perché compaiono più campi (7)

    codice:
    var num = 1;
    
    //AGGIUNGI
    if(num < $('#Num_keywords').val()) 
     {
       for (num ; num < $('#Num_keywords').val(); num++) 
         {$("#Keywords").clone().attr("id","Keywords"+num).insertBefore("#add_keyword:parent");
             alert(num)} 
     }
    //ELIMINA 
    if(num > $('#Num_keywords').val() && num>1) 
       {
         for (num-1 ; num >= ($('#Num_keywords').val()); num--) 
          { $("#Keywords"+num).remove();alert(num)} 
        }
    Dov'è che sbaglio?
    Conoscete altri metodi migliori per farlo?

  2. #2
    up

  3. #3
    Alla fine ho risolto quindi posto la soluzione che ho trovato

    codice:
                  //AGGIUNGI
                  while(num < $('#Num_keywords').val())
                        { 
                          $("#Keywords").clone().attr("id","Keywords"+num).insertBefore("#add_keyword:parent");
                          num++;
                        }
                  //ELIMINA
                  while(num > $('#Num_keywords').val())
                        {
                          $("#Keywords"+ (num-1)).remove();
                          num--;
                        }

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