Jump to content


Photo

Inserir Novo Option A Cada X Options


  • Faça o login para participar
1 reply to this topic

#1 Insert

Insert

    Turista

  • Usuários
  • 29 posts
  • Sexo:Não informado

Posted 03/07/2012, 20:01

Pessoal estou fazendo um script e nao tenho a minima idéia de como fazer o que desejo e estou parado nisso a dias, entoa resolvi vir aqui pedir ajuda.

Tenho um campo select e nele tenho uma quantidade X de opções, preciso saber como faço para inserir um novo option a cada X options ja existentes.

Ou seja o usuario define a cada quantas opções sera inserido a nova opção e o script executa ficando por ex. neste formato(a cada 3 opções inserir a nova):

opção1
opção2
opção3
novo
opção4
opção5
opção6
novo
opção7
opção8
opção9
novo
opção10
e assim vai...

Entenderam?

Alguem ?

#2 Ticreca

Ticreca

    Normal

  • Usuários
  • 105 posts
  • Sexo:Masculino

Posted 06/07/2012, 09:40

voce pode tentar algo parecido com isso...
para o select
<select name="sel" id="sel" onchange='alerta_campo(this);'>
                <option value="t1">01</option>
                <option value="t2">02</option>
                <option value="t3">03</option>
                <option value="t4">04</option>
                <option value="t5">05</option>
                <option value="t6">06</option>
                <option value="t7">07</option>
                <option value="t8">08</option>
                <option value="t9">09</option>
                <option value="t10">10</option>
            </select>
            <button onclick="mudar_combo()">Mudar</button>

basta vc colocar a funcao
function mudar_combo(){
                var sel = document.getElementById('sel');
                var options = sel.getElementsByTagName('option');
                
                var valores = new Array();//cria um vetor pra colocar os valores antigos e os novos
                var conta_pos = 0;
                for(var i=0; i < options.length; i++)
                {
                    var res = (i+1)%3;
                    valores[conta_pos]= new Array();
                    valores[conta_pos][0] = options[i].value;
                    valores[conta_pos][1] = options[i].text;
                    if(res==0)//a cada 3 coloca um valor novo
                    {
                        conta_pos++;
                        valores[conta_pos]= new Array();
                        valores[conta_pos][0] = "ttesten";//aqui vc coloca o value do option
                        valores[conta_pos][1] = "valn";//aqui vc coloca o texto do option
                       
                    }
                    
                    conta_pos++;
                }
                
                //limpa select
                var j=options.length;
                while(j>0)
                {
                    sel.remove(sel.selectedIndex);
                    j--;
                }
                //coloca cada option com os valores inseridos no array
                for(var j=0;j<valores.length;j++)
                {
                   var novo_option = document.createElement("option");
                   novo_option.setAttribute("value",valores[j][0]);
                   
                   var texto = document.createTextNode(valores[j][1]);
                   novo_option.appendChild(texto);
                   sel.appendChild(novo_option);
                }
            }

nao se esqueca de colocar os valores corretos.

espero ter ajudado.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq