Tenho 2 botões de opção e jquery em execução.
<input type="radio" name="lom" value="1" checked> first
<input type="radio" name="lom" value="2"> second
Agora, com um botão, posso definir onClick para executar uma função. Qual é a maneira de fazer com que os botões de rádio executem uma função quando clico em um deles?
javascript
jquery
David19801
fonte
fonte
Respostas:
Você pode usar
.change
para o que quisera partir de jQuery 1.3
você não precisa mais do '@'. A maneira correta de selecionar é:
fonte
$("input[name='lom']")
$("input[name='lom']").change(function(){ if ($(this).val() === '1') {..... // rest conditional statements based on values here } ;
jquery.self-0a6570c….js?body=1:1464 Uncaught Error: Syntax error, unrecognized expression
erro. Portanto, não é uma questão de escolha.Se você tiver seus rádios em um contêiner com id = radioButtonContainerId, você ainda pode usar onClick e, em seguida, verificar qual está selecionado e executar algumas funções de acordo:
fonte
fonte
isso deve ser bom
fonte
Existem várias maneiras de fazer isso. Ter um contêiner ao redor dos botões de rádio é altamente recomendado, mas você também pode colocar uma classe diretamente nos botões. Com este HTML:
você pode selecionar por classe:
ou selecione por ID de contêiner:
Em qualquer um dos casos, o evento será disparado ao clicar no botão de opção ou no rótulo dele, embora estranhamente no último caso (selecionando por "#shapeList"), clicar no rótulo irá disparar a função de clique duas vezes por algum motivo, em pelo menos no FireFox; selecionar por classe não fará isso.
SetShape é uma função e se parece com isto:
Dessa forma, você pode ter rótulos em seus botões e pode ter várias listas de botões de opção na mesma página que fazem coisas diferentes. Você pode até mesmo fazer com que cada botão individual na mesma lista faça coisas diferentes, configurando um comportamento diferente em SetShape () com base no valor do botão.
fonte
é sempre bom restringir a pesquisa DOM. então é melhor usar um pai também, de modo que todo o DOM não seja percorrido.
fonte