Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite,
Estou usando essa função javascript em meu site:
function selecao(cidades){
location= cidades.options[cidades.selectedIndex].value;
}
<select name="categoria" onchange="selecao(this)" id="categoria">
<option value="">Selecione</option>
<option value="cidade1.html">cidade1</option>
<option value="#">cidade2.html</option>
<option value="#">cidade3.html/option>
</select>
Porém queria inserir um submit, ativando a função por um evento onclick, embora achasse que seria fácil, mesmo não entendendo quase nada de javascript, observei alguns códigos parecidos, mas mesmo assim não consegui. Alguém pode me ajudar? Obrigado.
Olá Bergs,
Então, esse código que eu te passei funciona da seguinte maneira: quando seleciono uma cidade na caixa de seleção, sou direcionado para página da cidade referente, até aqui ok? Agora, o que eu queria: selecionar a cidade na caixa de seleção, mas para ser direcionado, ainda precisaria clicar em algum botão, por exemplo "ir para cidade seleciona". Entendeu? Desculpe-me, se minha pergunta ficou meio confusa, fiquei a tarde inteira tentando resolver isso que na minha cabeça a palavra submit e select javascript já auto-explicaria tudo :D.
o teu codigo, poderia ser reescrito para isso aqui:
function selecao(cidades){
location= cidades.value;
}muito mais simples.
E para funcionar no onsubmit, basta:
<form onsubmit="selecao( document.getElementById('cidade') )" method="">e pronto.ou no click, a mesma coisa.
William obrigado pela ajuda. Quando chegar em casa vou testar. Eu só precisaria aninhar meu select dentro desse <form onsubmit... e adicionar o submit antes da tag de fechamento "</form>", e trocar minha função antiga javascript pela nova que você me passou?
William desculpa pela minha ignorância, mas do jeito que eu entendi não deu certo, você pode me explicar melhor como deve funcionar?
<script type="text/javascript">
function selecao(frm){
//location= cidades.options[cidades.selectedIndex].value;
// esse vai de brinde
if( frm['cidade'].value == "" ){
alert("escolha uma cidade");
return false;
}
// pode trocar como quiser, independente de como está definido na tag <form>
frm.action = "pagina_do_action";
frm.method = "POST";
frm.submit();
}
</script>
<form action="pagina_do_action" method="GET">
<select name="categoria" onchange="selecao(this.form)" id="categoria">
<option value="">Selecione</option>
<option value="cidade1.html">cidade1</option>
<option value="#">cidade2.html</option>
<option value="#">cidade3.html/option>
</select>
</form>function selecao(frm){
location= cidades.options[cidades.selectedIndex].value;
// esse vai de brinde
if( frm['cidade'].value == "" ){
alert("escolha uma cidade");
return false;
}
// pode trocar como quiser, independente de como está definido na tag <form>
frm.action = "pagina_do_action";
frm.method = "POST";
frm.submit();
}
</script>
<form action="pagina_do_action" method="GET">
<select>
<option value="">Selecione</option>
<option value="404.html">404</option>
<option value="#">cidade2.html</option>
<option value="#">cidade3.html</option>
</select>
<input type="submit" onclick="selecao(frm)">
</form>
Não consegui fazer funcionar. Hj vou mandar um e-mail para um colega meu, se ele conseguir posto o resultado aqui, obrigado a todos que tentaram ajudar, vlw.
assim?
<script type="text/javascript">
function selecao( select ){
document.location.href = select.value;
}
</script>
<form action="pagina_do_action" method="GET">
<select id="cidade">
<option value="">Selecione</option>
<option value="404.html">404</option>
<option value="cidade2.html">cidade2.html</option>
<option value="cidade3.html">cidade3.html</option>
</select>
<input type="button" value="Ir para" onclick="selecao( document.getElementById('cidade') )">
</form>William também não funcionou.
Aqui está o código funcionando do jeito que queria:
<script type="text/javascript">
function abrirurl(){
var SelectS = document.getElementById("categoria").selectedIndex;
var ValorDoSelect = url.categoria.options[SelectS ].value;
location = ValorDoSelect;
}
</script>
<form name="url" method="post" action="#">
<select name="categoria" class="btcad" id="categoria">
<option value="">Selecione um site</option>
<option value="cidade1.html">cidade1</option>
<option value="cidade2.html">cidade2</option>
</select>
<input type="button" onClick="javascript:abrirurl()" value="Enviar">
</form>
Código by: Israel Jones. Visitem o site dele, tem vários tutorias legais lá. http://www.computingworld.info/. Obrigado mais um vez a todos que responderam.
@Guilhermej está muito confusa sua dúvida, qual a necessidade?
para vc enviar um submit vai ter que chamar a função submit() pelo formulário completo acrescentando as tag <form></form>, outra questão é fazer um onclick, onclick não vai funcionar na tag select.
Explica mais sua necessidade para termos uma base, pois sem a necessidade não tem como explanar a lógica.