Ir para conteúdo
novoAquiNoForum

COMO AUTOSELECIONAR SELECT MULTIPLE COM JQUERY

Recommended Posts

Olá Pessoal,

 

Preciso selecionar um select multiple com valores retornados do banco. Os valores retornados são os IDs separados por vírgula, exemplo: 1,2,3,4,5

 

Geralmente quando é somente um valor eu faço desta forma:

$("#combo_area").val(36).trigger('change');

No select multiple, se eu fizer desta maneira manualmente dá certo:

$("#combo_area").val(["5","4"]).trigger('change');

Porém estou com dificuldades de colocar desta forma. Tentei fazer um split, como exemplo:

var area = "";
var arr_area = id_area.split(',');
for (i = 0; i < arr_area.length; i++) {
  area += '"'+arr_area[i]+'", ';
  valor = area.substr(0,(area.length - 2));
};

$("#combo_area").val([valor]).trigger('change');

Mas não deu certo, alguém pode ajudar aí?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Resolvi meu problema, era muito simples e eu estava complicando.

 

Para auto-selecionar um select multiple é preciso passar um array como valor. Sendo assim, fiz somente o split na vírgula, dos ids que estava recebendo e passei o array como valor para o select, segue o código:

 

  		
//Recebo os ids desta forma: 1,2,3,4. Então tranformo em array com o split
var id_area 		= 1,2,3,4;
var arr_area        = id_area.split(',');

//Passo o array para o valor do meu select multiple. O trigger('change') é reponsável por selecionar as opções.
$("#combo_area").val(arr_area).trigger('change');

//No fim, chamo a função selectpicker para atualizar a combo, isso é necessário, senão nada acontece.
$('#combo_area').selectpicker('refresh');

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Maikson
      Olá pessoal, sou novo em javascript e Jquery, podem me ajudar com o seguinte problema?
      Tenho um select com algumas opções.
      Umas dessas opções possui o valor "outro".
      Quando o usuário selecionar esta opção, preciso que apareça um campo de texto para que ele especifique e um botão "+"
      Ao preencher o campo e clicar em "+" O valor precisa ser inserido no select como uma nova option e selected.

      Segue o código:
       
      <!DOCTYPE html> <html lang="pt-Br"> <head> <meta charset="UTF-8"> <title>Select com opção de novo valor</title> <script> // Toda vez que uma opção for selecionada, teste se é "outro" // Se for, mostre o campo para que o usuário informe o novo valor // O novo valor deve ser enviado ao servidor como se fosse uma option selected neste select </script> </head> <body> <select name="grupo" id="gruposSelect" onchange="novoValor(gruposSelect, divOculta);"> <option value="">Todos</option> // Código PHP que gera opções <option value="outro">Outro</option> </select> <div id="divOculta" style="display:none;"> <input type="text" name="grupo" id="novoGrupo" /> </div> </body> </html>

      Desculpem se eu estiver violando alguma regra ou falta de clareza, este é o primeiro fórum que participo e meu primeiro post
      Obrigado
       
    • Por laloproces
      Boa noite. Segue o texto do método main:
       
      /*O sistema basicamente faz é pedir informções para o usuário, pergutando quantas pessoas vai cadastrar, *qual o nome, telefone, se a pessoa trabalha, pede o cargo e a empresa para no final exibir essas informações na tela. */ public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Quantas pessoas você vai cadastrar? (Somente números)\n"); int pessoas = (int)in.nextInt(); String[] nome = new String[pessoas]; String[] telefone = new String[pessoas]; String[] profissao = new String[pessoas]; String[] empresa = new String[pessoas]; int op = 0; for(int i=0; i<pessoas; i++) { System.out.println("\nDigite o nome do serumaninho:\n"); nome[pessoas] = in.toString(); //Tá dando erro aqui, provavelmente por causa da variável dinâmica pessoas System.out.println("\nDigite o telefone desse serumaninho:\n"); telefone[pessoas] = in.nextLine(); System.out.println("\nEsse vivente trabalha? (0 para não, 1 para sim)\n"); op = in.nextInt(); if(op == 1){ System.out.println("\nDigite a profissão dele:\n"); profissao[pessoas] = in.nextLine(); System.out.println("\nDigite o nome da empresa em que ele trabalha:\n"); empresa[pessoas] = in.nextLine(); } } for(int j=0; j<pessoas; j++){ if(op ==1){ Pessoa[] p = {new Profissional(nome[j], telefone[j], profissao[j], empresa[j])}; } else{ Pessoa[] p2 = {new Pessoa(nome[j], telefone[j])}; } } for(int h=0; h<pessoas; h++){ if(op==1){ Pessoa[] p = {new Profissional(nome[h], telefone[h], profissao[h], empresa[h])}; System.out.println(Arrays.toString(p)); } else{ Pessoa[] p2 = {new Pessoa(nome[h], telefone[h])}; System.out.println(Arrays.toString(p2)); } } } //Abaixo estão as classes, que estão em outros arquivos Java. public class Pessoa { public String getNome(){ return nome; } public void setNome(String nome){ this.nome = nome; } public String getTelefone(){ return telefone; } public void setTelefone(String telefone){ this.telefone = telefone; } private String nome; private String telefone; Pessoa(String nome, String telefone){ this.nome = nome; this.telefone = telefone; } void exibir(){ System.out.println(getNome()+" :: "+getTelefone()); } } //Abaixo a classe Profissional, derivada da classe Pessoa. public class Profissional extends Pessoa { private String profissao; private String empresa; public String getProfissao(){ return profissao; } public void setProfissao(String profissao){ this.profissao = profissao; } public String getEmpresa(){ return empresa; } public void setEmpresa(String empresa){ this.empresa = empresa; } Profissional(String nome, String telefone, String profissao, String empresa){ super(nome, telefone); this.profissao = profissao; this.empresa = empresa; } @Override public void exibir(){ super.exibir(); System.out.println("\tTrabalha como "+profissao+"no(a) "+empresa+"."); } } Minha dúvida é: como posso corrigir o problema sem tirar a maneira dinâmica do sistema e se da maneira como fiz não irá gerar outros erros ou poderia fazer de uma maneira mais simples.
      Desde já agradeço!
    • Por Kelven
      Olá pessoal tudo bem?
       
      Então eu quero colocar um formulário de newsletter em um servidor q não tem suporte para php, o negócio é q depois que a pessoa clica em se cadastrar eu quero que ela seja redirecionada para outro site, então gostaria de saber como posso estar fazendo isso usando apenas javascript, jquery ou ajax com o API do Mailchimp? Porque já procurei muito e não achei, só achei em php.
    • Por Dan Borges
      Olá,
       
      Tenho conhecimentos em C#, e ultimamente venho programando utilizando o MonoGame para desenvolver jogos. Estava procurando como é feito uma pista pseudo 3D, e achei esse artigo em JS: https://codeincomplete.com/posts/javascript-racer-v1-straight/
       
      Por ter a lógica de programação da mente, mesmo sem saber js, entendi parte do código, mas esse trecho, não:
      segments = []; for(var n = 0 ; n < 500 ; n++) { // arbitrary road length segments.push({ index: n, p1: { world: { z: n *segmentLength }, camera: {}, screen: {} }, p2: { world: { z: (n+1)*segmentLength }, camera: {}, screen: {} }, color: Math.floor(n/rumbleLength)%2 ? COLORS.DARK : COLORS.LIGHT }); } A primeira vista entendi que ele está adicionando valores ao array segments com o método push. Mas, os valores colocados, não fazem sentido para mim.
      É como se fosse criada uma classe dinamicamente (que contenha as variáveis:, index, p1, p2...) sem precisar declará-la.
      Seria basicamente isso? Ele criou um objeto que representa uma classe, mas sem nomeá-la, ou algo semelhante?
    • Por Incompetech
      Então.. a um tempo atrás eu fiz um post pedindo ajuda em relação a tooltip mas não obtive resposta, então decidi deixar essa funcionalidade para depois.
      Como disse na minha primeira pergunta eu estou praticando HTML / CSS / JS ... então comecei a fazer uma entrada para MU ONLINE que foi um dos jogos que mais joguei em épocas de LAN HOUSE. Então o que quero perguntar a vocês é o seguinte:

      Como podem ver nessa imagem acima ela tem um total de 10 itens que são icones pequenos que ao clicar neles logo ele irá dar loading na foto do item completo, gostaria de saber como fazer isso.
       
      No meu caso eu criei essa entrada no Photoshop: 
       
      E no caso gostaria de fazer a mesma coisa porém clicando nas setas que estão do lado da box como podem ver no centro da imagem.
      Para isto eu devo usar Js? E qual código devo usar, eu sou super perdido com Js.
      Agradeço desde já! :D

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.