Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ndias

função checked / unchecked

Recommended Posts

Novamente, peço ajuda de vocês.

 

Eu tenho um formulário HTML que trago carregado em PHP algumas values, e dentre elas tenho um radio que quando "true" vem checked

 

Quero poder clicar no radio checked e deixá-lo "false".

 

Para isso, estou usando uma function muito simples:

 

function verificaCheckbox (obj) {
if(obj.checked == true){
obj.checked = false;
}
}
e meu código tá assim:
<input type="radio" name="Checkbox" <? if(($VariavelPHP) && $ValorVariavelPHP == 1){?> checked<? }?> value="1" onClick="verificaCheckbox(this)"> Checkbox1
<input type="radio" name="Checkbox" <? if(($VariavelPHP) && $ValorVariavelPHP == 2){?> checked<? }?> value="2" onClick="verificaCheckbox(this)"> Checkbox2
<input type="radio" name="Checkbox" <? if(($VariavelPHP) && $ValorVariavelPHP == 3){?> checked<? }?> value="3" onClick="verificaCheckbox(this)"> Checkbox3

Quando eu clico no radio ele deseleciona, mas não me permite selecioná-lo de volta, mesmo se eu adaptar minha function assim:

 

function verificaRadio (obj) {
if(obj.checked == true){
obj.checked = false;
}else{
obj.checked = true;
}
Como devo fazer se eu quiser deselecionar e na sequencia selecionar de volta uma radio checked?
Alguém pode me ajudar, por favor?
Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ai pessoal? ninguém interage? kd os moderadores? minha duvida pode ser também a de outra pessoa.

 

agradeço se alguém puder me responder.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Evite utilizar "UPs", todos somos voluntários e possuímos nosso tempo em que podemos interagir ou não.

 

Outro detalhe, moderadores existem para manter a ordem e não para responder ou fazer com que alguém responda. Excetua-se o fato de que moderadores são moderadores por possuir um certo conhecimento e, acima de tudo, ética em suas ações.

 

--------------

 

Vide ao conteúdo, o onclick interage de forma diferente do onkeydown/onkeyup/onkeypress. Para o bem da verdade, ele é igual ao onkeyUp, ou seja, quando clicar no botão, toda a sua ação já estará registrada.

 

Desta forma, sempre que clicar no radio button, ele é primeiro selecionado e, posteriormente, a função verificaCheckbox é executada. Ou seja, seu radio sempre estará selecionado.

 

Talvez com jQuery você possa parar a seleção usando event.preventDefault() e event.stopPropagation(). Mas é apenas uma suposição.

 

Já no javascript puro, crie uma lista auxiliar para saber o que realmente está selecionado ou não e utilize-a como parâmetro.

 

Para mais informações:

http://ux.stackexchange.com/questions/13511/why-is-it-impossible-to-deselect-html-radio-inputs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Gabriel. Eu realmente estou um pouco apressado e desesperado com isso. As vezes consigo uma solução no intervalo do tempo que demora para alguém interagir, mas não foi o caso dessa vez. Me desculpe por qualquer coisa.

 

Você teria um exemplo de function checked e unchecked com o evento preventDefault() e stopPropagation() para me passar, por favor?

 

Obrigado,

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso aqui no segundo click da certo...mas só no segundo click

 

$(function(){
$('input[name=rad]').click(function(){
var $radio = $(this);

// if this was previously checked
if ($radio.data('waschecked') == true)
{
$radio.prop('checked', false);
$radio.data('waschecked', false);
}
else
$radio.data('waschecked', true);

// remove was checked from other radios
$radio.siblings('input[name=rad]').data('waschecked', false);
});
});

<input type="radio" name="rad" id="Radio0" checked="checked" data-waschecked="true" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson, deixa eu te perguntar mais uma coisa, por favor.

 

Quando eu clicar na radio checked, se eu quiser que outra radio fique checked no lugar, como eu faço utilizando classe e Id em JQuery?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Id sempre será a name acrecido de 0.

 

Desta forma, isto está correto?

var $id = $(this).attr('name')+'0';

$("#"+id).prop('checked', true);

Compartilhar este post


Link para o post
Compartilhar em outros sites

faltou o símbolo $ na variável para chamá-la..

 

$("#"+$id).prop('checked', true);

 

por isso eu não tava conseguindo...

 

agora deu certo!

 

valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.