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?