Ir para conteúdo

POWERED BY:

Arquivado

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

visitante_xp

Fazer o Option de um Select vir marcado.

Recommended Posts

Iae povo...^^

 

Alguem ai sabe qual código pra um campo option ja vir marcado?

 

Eu to tentando estruturar mas to mó perdido...

 

document.getElementById("Select").selected;

document.getElementById("Select").selected(option1);

Se alguem puder ajudar...

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o atributo select da HTML.

No código a seguir a opção B está previamente selecionada.

<select id="Select">
<option value="a">A</option> 
<option value="b" selected="selected">B</option> 
<option value="c">C</option> 
<option value="d">D</option>
<option value="e">E</option>  
</select>

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK.

 

O broblema em questão é que preciso que o campo OPTION venha selecionado via código javascript.

 

A ideia é pegar um determinado valor num banco mysql, criar um hidden com este valor, pegar o valor via javascript e deixar selecionado no SELECT. (Bom, talvez de pra deixar a rotina menor mas agora ela me serve bem).

 

Tentei fazer via JQUERY mas não sei o que saiu errado...

 

$(document).ready(function(){ var campValueSelected = $('#campValueSelected'+q).val(); $('#cargo'+q).val( campValueSelected ); });

Esse código deveria pegar um valor de um campo hidden ja criado e seta-lo no SELECT, porém não o faz. Nem da erro.

 

Peguei base me um outro código que uso no mesmo sistema.

 

Coloquei esse código em meio a outra rotina JavaScript, talves seja esse o motivo do erro.

 

Abraço!

 

PS: Krak, o Maujor respondeu a um tópico meu... :o :o :o

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nessa parte os campos são criados a partir do innerHTML do javascript.

 

for(q=1; q<=qtdeCampos; q++)
		{
			if(acao=="edit"){ var ValueSelect=document.getElementById("campValueSelect"+q).value; $(document).ready(function(){ var campValueSelected = $("#campValueSelected"+q).val(); $("#cargo"+q).val( campValueSelected ); }); }
			var objPai = document.getElementById("campoPaiSelect");
			//Criando o elemento DIV;
			var objFilho = document.createElement("div");
			//Definindo atributos ao objFilho1:
			objFilho.setAttribute("id","filhoSelect"+q);
			//Inserindo o elemento no pai:
			objPai.appendChild(objFilho);
			//Escrevendo algo no filho recm-criado:
			document.getElementById("filhoSelect"+q).innerHTML = "<table border='0' cellpadding='1' cellspacing='0'>"+
			"<tr>"+
				"<td>"+
					"<select name='id_socio"+q+"' id='socio"+q+"'><option value=''>"+
						"</option><option value='1' selected='selected'> Alexandre </option><option value='2' > Teste </option><option value='3' > Socio Dinamico </option><option value='4' > Outro </option><option value='5' > Socio diferente </option><option value='6' > Socio qualquer </option> "+
					"</select>"+
				"</td>"+
				"<td>"+
				"<input type='text' name='capital_socio"+q+"' value='"+ValueSelect+"' />"+
				"</td>"+
				"<td>"+
				"<select name='cargo"+q+"' id='cargo"+q+"'>"+
					"<option value=''></option>"+
					"<option value='Socio'>Socio</option>"+
					"<option value='Socio Administrador'>Socio Administrador</option>"+
					"<option value='Diretor'>Diretor</option>"+
					"<option value='Presidente'>Presidente</option>"+
					"<option value='Administrador'>Administrador</option>"+
				"</select>"+
				"</td>"+
			"</tr>"+
		"</table>";
		}
	}
Testei a mesma estrutura de código em outra pagina (só mudando as variaveis) e funcionou.

Dei um alert na variavel e funcionou, mas ele não deixa marcado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso a letra Q é a referencia do LOOP.

 

Deveria ser mostrado campValueSelected1...

 

Seguindo essa lógica (espero que o senhor tenha entedido), como posso obter exito?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei que q (não Q) é o contador. Perguntei onde

foi colocado na marcação HTML o ID gerado (campValueSelected1 ou campValueSelected2, etc)

As declarações:

document.getElementById("campValueSelect"+q) e também document.getElementById("campoPaiSelect");

retornam indefinidas. Onde estão estes ID's

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, erro meu.

 

A definição campPaiSelect é uma div:

<div id="campoPaiSelect"></div></div>

E o campValueSelected é uma campo hidden:

<input type='hidden' name='campValueSelected1' id='campValueSelected1' value='Administrador' />

São essas.

 

Posso até estar errado, mas creio que o grande problema esta na utilização de Javascript com JQUERY. Digo isso porque os campos do HTML são "gerados" via JavaScript. Fiz um teste, dando um alert com o valor da variavel campValueSelected e o alert apareceu antes de os campos HTML serem gerados pelo JavaScript. Ao meu entendimento, o Jquery esta "setando" um valor em um campo que não existe.

 

A minnha pergunta é: Existe algum maneira de mudar isso?

 

Pelo Jquery usa-se o $(document).ready, da pra coloca outra coisa no lugar do ready ou isso é um "padrão" do Jquery?

 

Grato pela atenção.

 

Tentei algo "diferente"...

 

$(document).ready(function(){ 
var ValueSelected = $('#campValueSelected'+q).val(); 
$('#cargo'+q).ready(function(){ 
$(this).val( ValueSelected ); 
}); 
});

Estou no caminho certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

$(document).ready(function(){ 
 var ValueSelected = $('#campValueSelected'+q).val(); 
 $('#cargo'+q+ ' option[value='+ValueSelected+']').attr('selected', 'selected');  
});

------------------------------------------------------

$(document).ready(function(){
...
}) 

resumidamente: é o equivalente jQuery para window.onload.

Estude jQuery!

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.