Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Tarde, gostaria de fazer com que uma tag OPTION dentro da tag SELECT do HTML mostrasse um prompt no javscript perguntando qual o valor e atribui-se o valor digitado ao atributo 'value' desta tag OPTION. Tudo em tempo de execução.
Tentei fazer da seguinte forma mais não funcionou:
<label>Tipo:</label><select name="tipo" id="tipo">
<option>Reclamação</option>
<option>Sugestão</option>
<option></option>
<option onclick="this.value=window.prompt('Qual seria o outro assunto à tratar ?')">Outros</option>
</select>
No caso acima quando o usuário clicar em "OUTROS" ele deve chamar o prompt perguntando qual seria o outro assunto à tratar e salvar no atributo "value".
Desculpa a demora Shini, mais testei o código e funcionou apenas no Firefox. No Google Chrome não funciona !
Até no IE está funcionando
putz so testei no firefox mesmo... depois vou dar uma olhada.
tem uns topicos aqui...
http://stackoverflow.com/questions/4340690/javascript-onclick-alert-not-working-in-chrome
http://stackoverflow.com/questions/5160943/onclick-doesnt-work-in-chrome
http://stackoverflow.com/questions/6194010/onclick-dropdown-works-in-firefox-but-not-chrome-or-ie
http://www.wohill.com/replacing-the-onclick-event-for-ie-or-chrome/
dei uma alterado no codigo, funcionou no chorome porem você deve ter pelo menos 2 opções no select
<html>
<head>
<script type="text/javascript">
function addOption(valor){
if(valor == ''){
var descricao = prompt('Qual seria o outro assunto à tratar ?','teste-ct');
var combo = document.getElementById('estados');
var itens = combo.options.length;
combo.options[itens] = new Option(descricao, descricao);
}
}
</script>
</head>
<body>
<form action="">
<select id="estados" name="estados" onchange="addOption(this.value);">
<option value="" >Selecione...</option>
<option value="" >Selecione...</option>
</select>
</form>
</body>
</html>O problema no seu código é que ele vai ser executado na seleção de qualquer uma das opções, e no meu caso eu só quero que adicione a opção se o cara selecionar a opção "outros"
ele so funciona se você selecionar a opção "selecione...", caso seja outra ele n vai perguntar ao usuario, por isso aquele if.
fiz assim :
function addOptionSelect(valor){
if (valor == 'Outro')
var desc = prompt('Qual seria o tipo do seu trabalho ?');
var combo = document.getElementById('tipo_trabalho');
var itens = combo.options.length;
combo.options[itens] = new Option(desc,desc,true,true);
}
e no meu SELECT coloquei:
<label>Tipo:</label><select name="tipo_trabalho" id="tipo_trabalho" onchange="addOptionSelect(this.value);">
<option>Relato de Caso</option>
<option>Estudo Qualitativo</option>
<option value="Outro">Outro</option>
</select>
porém não funcionou .
faltou colocar as chaves no if.
function addOptionSelect(valor){
if (valor == 'Outro'){
var desc = prompt('Qual seria o tipo do seu trabalho ?');
var combo = document.getElementById('tipo_trabalho');
var itens = combo.options.length;
combo.options[itens] = new Option(desc,desc,true,true);
}
}Funcionou Shine, muito obrigado ! Eu estava colocando dentro de um bloco jquery por isso não funcionava !
com javascript tente isso.