$('#mySelectBox option').each(function() {
if ($(this).isChecked())
alert('this option is selected');
else
alert('this is not');
});
Aparentemente, o isChecked
não funciona. Então, minha pergunta é qual é a maneira correta de fazer isso? Obrigado.
this.selected
) que você deve ignorar usando jQuery ($(this).prop("selected")
), mas eles vão tanto trabalho para você.Respostas:
ATUALIZAR
Um método jQuery mais direto para a opção selecionada seria:
Responder à pergunta
.is(':selected')
é o que você está procurando:A maneira não-jQuery (sem dúvida a melhor prática) de fazer isso seria:
Porém, se você está apenas procurando o valor selecionado, tente:
Se você estiver procurando pelo texto do valor selecionado, faça:
Confira: http://api.jquery.com/selected-selector/
Da próxima vez, procure por perguntas SO duplicadas:
Obter a opção selecionada atual ou Definir opção selecionada ou Como obter a opção selecionada $ (this) no jQuery? ou a opção [selected = true] não funciona
fonte
this.selected
pode ser usado em vez de$(this).is(":selected")
eu acho que não há necessidade de um jsperf para isso, certo? Não tenho nada contra o uso do jQuery !, mas use-o quando você precisar, não quando ele fornecer nada além de sobrecarga e mais código.this.selected
é completamente válido, mas ele pediu a maneira correta do jQuery de fazer isso.Você pode obter a opção selecionada desta maneira:
DEMONSTRAÇÃO AO VIVO
Mas se você quiser iterar todas as opções, faça-o em
this.selected
vez dethis.isChecked
não existir:DEMONSTRAÇÃO AO VIVO
Atualizar:
Você tem muitas respostas sugerindo que você use isso:
$(this).is(':selected')
bem, isso pode ser feito com muito mais rapidez e facilidadethis.selected
, por que você deve usá-lo e não o método do elemento DOM nativo ?!Leia Conheça as propriedades e funções do seu DOM nas informações da
jQuery
tagfonte
this.selected
. Concordo com seus comentários sobre o uso excessivo / abuso do jQuery. Parte de conhecer o jQuery, é saber quando não usá-lo. Dito isso, lembre-se de que o':selected'
seletor é um seletor Sizzle personalizado; portanto, o uso desabilita o usoquerySelectorAll
em navegadores suportados. Certamente não é o fim do mundo, pois fornece um código curto e agradável, mas eu pessoalmente tendem a evitar as coisas apenas do Sizzle.Se você não estiver familiarizado ou à vontade
is()
, basta verificar o valor deprop("selected")
.Como visto aqui :
Editar :
Como @gdoron apontou nos comentários, a maneira mais rápida e apropriada de acessar a propriedade selecionada de uma opção é através do seletor DOM. Aqui está a atualização do violino que exibe esta ação.
parece funcionar tão bem! Obrigado gdoron.
fonte
$(this).prop("selected")
vez dethis.selected
?! o que isso te dá ??! ps Eu não sou o defensor ...is
é melhor usado, mas gosto de acessar minhas propriedades por prop e attr. Na maioria dos cenários, pode ser apenas uma questão de gosto. Sim, há uma erupção curiosa de baixa votação!jQuery
informações da tag . não há razão para usar código mais lento + mais código para fazer coisas simples..is()
deve ser usado para seletores complicados como$(...).is('.foo > [name="aaa"] input') or for properties that are not native DOM elements properties like
$ (...). is (": visiable").$(this).is(':selected')
para ser aceito Stackoverflow deve ser usado para aprender as melhores práticas, e não erros comuns ....)Você pode usar este caminho por jquery:
fonte
usar
para testar se é uma opção específica
myoption
:fonte
myoption
???Considere isso como sua lista de seleção:
então você marca a opção selecionada assim:
fonte
No meu caso, não sei por que o selecionado é sempre verdadeiro. Então, a única maneira de pensar é:
fonte
Se você quiser apenas verificar se uma opção está selecionada, não precisará percorrer todas as opções. Apenas faça
Nota: Se você tiver uma opção com o valor = 0 que deseja selecionar, precisará alterar a condição if para
$('#mySelectBox').val() != null
fonte
Se você precisar verificar o estado selecionado da opção para obter um valor específico :
fonte
Se você deseja verificar a opção selecionada através de javascript
O método mais simples é adicionar o atributo onchange nessa tag e definir uma função no arquivo js. Veja o exemplo se o seu arquivo html tiver opções parecidas com esta
E agora adicione a função no arquivo js
Se você quiser marcar a opção selecionada no arquivo php
Simplesmente dê o atributo name na sua tag e acesse o arquivo php global variables / array ($ _GET ou $ _POST) veja o exemplo se o seu arquivo html é algo como isto
E no seu arquivo php validation.php você pode acessar assim
fonte