Quero definir uma opção que foi selecionada anteriormente para ser exibida no carregamento da página. Eu tentei com o seguinte código:
$("#gate").val('Gateway 2');
com
<select id="gate">
<option value='null'>- choose -</option>
<option value='gateway_1'>Gateway 1</option>
<option value='gateway_2'>Gateway 2</option>
</select>
Mas isso não funciona. Alguma ideia?
jquery
html
jquery-selectors
html-select
Voto a favor
fonte
fonte
Respostas:
Definitivamente, isso deve funcionar. Aqui está uma demonstração . Verifique se você inseriu seu código em
$(document).ready
:fonte
'Gateway 2'
passado para a funçãoval
corresponde ao valor dovalue
atributo da opção de seleção, não ao seu texto. Veja este JSFiddle , que é uma versão muito moderada da demo de Darin, para um exemplo do que quero dizer.fonte
$('#gate').val('Gateway 2').prop('selected', true);
fonte
$('#your-select-box-id :nth-child(2)').prop('selected', true)
que funciona, com atualização visual da caixa suspensa.Descobri que o método jQuery .val () tem uma desvantagem significativa.
Se esta caixa de seleção (ou qualquer outro objeto de entrada) estiver em um formulário e houver um botão de redefinição usado no formulário, quando o botão de redefinir for clicado, o valor definido será limpo e não redefinido para o valor inicial, como seria de esperar.
Isso parece funcionar melhor para mim.
Para caixas de seleção
Para entradas de texto
Para entradas de área de texto
Para caixas de seleção
Para botões de opção
fonte
fonte
Isso funciona bem. Veja este violino: http://jsfiddle.net/kveAL/
É possível que você precise declarar seu jQuery em um
$(document).ready()
manipulador?Além disso, você pode ter dois elementos com o mesmo ID?
fonte
Essa seria outra opção:
fonte
Eu tive o mesmo problema.
Solução: adicione uma atualização.
fonte
Eu sei que existem várias iterações de respostas, mas agora isso não requer jquery ou qualquer outra biblioteca externa e pode ser realizado com bastante facilidade apenas com o seguinte.
fonte
Alguns casos podem ser
fonte
Meu problema
Eu tive o mesmo problema . A única diferença do seu código é que eu estava carregando a caixa de seleção por meio de uma chamada ajax e, assim que a chamada ajax foi executada, eu havia definido o valor padrão da caixa de seleção
A solução
fonte
Eu tive um problema em que o valor não foi definido devido a um erro de sintaxe antes da chamada.
Verifique se há erros de sintaxe antes da chamada.
fonte
fonte
fonte
.attr()
tem sido a maneira errada de fazer isso desde muito antes de esta resposta ser publicada.Além de @icksde e @Korah (thx both!)
Ao criar as opções com o AJAX, o document.ready pode ser acionado antes da criação da lista, portanto
Isso não funciona
Isso faz
Um tempo limite funciona, mas como @icksde diz que é frágil (eu realmente precisava de 20ms em vez de 10ms). É melhor ajustá-lo dentro da função AJAX da seguinte maneira:
fonte