Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vieira

jQuery - Select -> Selecionar opção de acordo com o valor retonado

Recommended Posts

Olá pessoal.

 

Estou com uma dúvida, relativamente simples, porém não encontrei exemplos.

 

No Jquery, dentro de um each, eu consigo preencher os campos inputs conforme segue:

$(xml).find("empregado").each(function() {
		$('#nome').val($(this).find("nome").text());
});

No caso citado, ele preecnhe o campo text com o id #nome. Até ai tudo bem.

 

Minha dúvida é: Como fazer isso nos campos do tipo select?

 

Já tentei:

 

$('#sexo').val($(this).find("sexo").text()).attr('selected',true);  // nao deu certo
$('#sexo[@value='+$(this).find("sg_sexo").text()+']').attr("selected",true); // nao deu certo

O que eu quero neste caso é que o selectbox com o id #sexo já traga selecionado a opção retornada no $(this).find("sexo").text(), ou seja, se for "F", seleciona o feminino, se "M" o masculino.

 

Segundo a documentação do jQuery, era pra dar certo: http://docs.jquery.com/Attributes/val#val

 

Agradeço antecipadamente qualquer ajuda! valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, no select você tem que sobrescrever ou adicionar os options que você desejar.

 

var valor_inicial = $(this).find("sexo").text();

var option_m = valor_inicial=='M' ? '<option value="M" selected="selected">Masculino</option>' : '<option value="M">Masculino</option>';
var option_f = valor_inicial=='F' ? '<option value="F" selected="selected">Feminino</option>' : '<option value="F">Feminino</option>';

var conteudo_select = option_m+option_f;

$('#sexo').html(conteudo_select);

E porque você está usando select, não seria mais facil usar input radio para isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fera! valeu pela dica.

 

Porém, o que está na documentação do jQuery está correto. Basta informar: $(this).find("sexo").val(); que ele seleciona a opção.

 

O que acabei descobrindo, é que há um conflito de id's quando se usa o jQuery UI (neste caso estou usando o Tabs). Não sei porque razão, as páginas carregadas via ajax pelo tabs do jquery UI, precisam ter id's diferentes. Como em duas páginas carregadas via ajax (cadastro e edita) haviam o id sexo, bastou renomear em uma das páginas e resolveu.

 

Enfim, consegui resolver o caso.

 

Portanto, sigam a documentação do jQuery que está corretíssima.

 

Abraços!

 

Cara, no select você tem que sobrescrever ou adicionar os options que você desejar.

 

var valor_inicial = $(this).find("sexo").text();

var option_m = valor_inicial=='M' ? '<option value="M" selected="selected">Masculino</option>' : '<option value="M">Masculino</option>';
var option_f = valor_inicial=='F' ? '<option value="F" selected="selected">Feminino</option>' : '<option value="F">Feminino</option>';

var conteudo_select = option_m+option_f;

$('#sexo').html(conteudo_select);

E porque você está usando select, não seria mais facil usar input radio para isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia ser assim tbm:

$("#sexo").val("Masculino");

 

 

Fera! valeu pela dica.

 

Porém, o que está na documentação do jQuery está correto. Basta informar: $(this).find("sexo").val(); que ele seleciona a opção.

 

O que acabei descobrindo, é que há um conflito de id's quando se usa o jQuery UI (neste caso estou usando o Tabs). Não sei porque razão, as páginas carregadas via ajax pelo tabs do jquery UI, precisam ter id's diferentes. Como em duas páginas carregadas via ajax (cadastro e edita) haviam o id sexo, bastou renomear em uma das páginas e resolveu.

 

Enfim, consegui resolver o caso.

 

Portanto, sigam a documentação do jQuery que está corretíssima.

 

Abraços!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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