Eu tenho dois botões de opção no evento de mudança. Eu quero o botão de mudança Como é possível? My Code
<input type="radio" name="bedStatus" id="allot" checked="checked" value="allot">Allot
<input type="radio" name="bedStatus" id="transfer" value="transfer">Transfer
Roteiro
<script>
$(document).ready(function () {
$('input:radio[name=bedStatus]:checked').change(function () {
if ($("input[name='bedStatus']:checked").val() == 'allot') {
alert("Allot Thai Gayo Bhai");
}
if ($("input[name='bedStatus']:checked").val() == 'transfer') {
alert("Transfer Thai Gayo");
}
});
});
</script>
if($("input[name='bedStatus']:checked").val() == 'allot')
pode ser escritoif($("input[name='bedStatus']").val() == 'allot')
Respostas:
Você pode usar o
this
que se refere aoinput
elemento atual .http://jsfiddle.net/4gZAT/
Observe que você está comparando o valor com
allot
as instruções if e o:radio
seletor estão obsoletas.Caso você não esteja usando o jQuery, você pode usar os métodos
document.querySelectorAll
eHTMLElement.addEventListener
:fonte
:radio
seletor não está obsoleto (no jQuery).this
valor ou deseja usar othis
valor de contexto circundante em seu manipulador, usado por esse snippetthis
. E alegar que o uso de funções regulares é uma "velha má prática" é totalmente sem sentido! Além disso, navegadores mais antigos não suportam a sintaxe da função de setaArray#includes
e deve-se usar um transpiler e um shim para suportar navegadores mais antigos. Por que fazer uma resposta simples que não tem nada a ver especificamente com funções de seta complicadas?this
, eu usoevent.target
.Uma adaptação da resposta acima ...
http://jsfiddle.net/xwYx9
fonte
.on()
realmente tem ganhos em relação ao acima, no entanto, ao considerar os seletores dinâmicos, é certamente o único caminho a seguir no jQuery 1.7+on
obtém ganhos quando você fornece um contexto para delegação de eventos ou mesmo para seletores dinâmicos, como você disse, mas da maneira como você escreveu, é exatamente o mesmo que a resposta acima.Uma maneira mais simples e limpa seria usar uma classe com a resposta de @ Ohgodwhy
Roteiro
fonte
JS Fiddle
fonte
$(this).is(":checked")
usarthis.checked
. É JS puro e, portanto, é muito mais rápido.Use a função onchage
fonte
Solução simples ES6 (somente javascript) .
fonte
fonte
fonte
Se os botões de opção forem adicionados dinamicamente, você poderá usar este
fonte
fonte