Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galerinha da maldade,
Gostaria de saber com vocês, se com javascript eu consigo diminuir a quantidade de vezes que seleciono as respostas criadas com checkbox, onde ao selecionar 2 opções as demais seriam desabilitadas.. isso é possível?
Ex.:
<form onsubmit="return valid_teste();">
<label>Pergunta 1</label>
<input type = "checkbox" name = "opcao1" id = "opcao1" />
<input type = "checkbox" name = "opcao2" id = "opcao2" />
<input type = "checkbox" name = "opcao3" id = "opcao3" /> <input type = "checkbox" name = "opcao4" id = "opcao4" />
<input type="submit" name="btn" /> </form>
Ao selecionar a resposta 1 e 4 a 2 e 3 seria desabilitadas.
Não sei deu para entender.. caso eu encontre algo antes posto aqui.
Desde agradeço pela força, abraço.
é possível sim, basta atribuir disabled = true aos outros inputs.
Eu estava... dando uma olhada no disabled... dai veio um outro problema tipo...
Como faço para verificar que já selecionei 2 opções e desativar as demais?
Qualquer orientação ou sugestão de estudo será bem vinda.
Vlws pela força William tu é o cara.. =D
opa.. fiz um exemplo aqui cara.. tem a ida e a volta..
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>label { display: block; }</style>
<script type="text/javascript">
(function(){
"use strict";
var marcados = 0;
var verificaMarcado = function() {
var $checks = document.querySelectorAll('input[type="checkbox"]');
if( marcados>=2 ) {
loop($checks, function($element) {
$element.disabled = $element.checked ? '' : 'disabled';
});
} else {
loop($checks, function($element) {
$element.disabled = '';
});
}
};
var loop = function($elements, cb) {
var max = $elements.length;
while(max--) {
cb($elements[max]);
}
}
var count = function($element) {
return $element.checked ? marcados + 1 : marcados - 1;
}
window.onload = function(){
var $checks = document.querySelectorAll('input[type="checkbox"]');
loop($checks, function($element) {
$element.onclick = function(){
marcados = count(this);
verificaMarcado();
}
if($element.checked) marcados = marcados + 1;
});
verificaMarcado();
}
}());
</script>
</head>
<body>
<label><input type="checkbox" value="1" />Item 1</label>
<label><input type="checkbox" value="2" />Item 2</label>
<label><input type="checkbox" value="3" />Item 3</label>
<label><input type="checkbox" value="4" />Item 4</label>
<label><input type="checkbox" value="5" />Item 5</label>
</body>
</html>se vc marcar 2 ele coloca disabled nos outros. Se vc desmarcar um, pode marcar outro, ai ele desabilita todos os outros novamente.Tem que ser 2 opções obrigatoriamente?
Para verificar:
var teste = $(".nome_da_classe").is(':checked');
if(teste)
{
// existe checkbox selecionado
}
else
{
// nao existe checkbox selecionado
}Pow William, Brigadão.. [RESOLVIDO]
Nesse código que você fez tem uma porrada de coisa que n entendo.. (provavelmente vou tentar destrinchar ele) srrssrr
Tu poderia me indicar algum material de estudo relacionado ao q vc fez? \o_
Vlws
>
Tem que ser 2 opções obrigatoriamente?
Para verificar:
var teste = $(".nome_da_classe").is(':checked');
if(teste)
{
// existe checkbox selecionado
}
else
{
// nao existe checkbox selecionado
}
Posso inserir isso em minhas validações. \o
Vlws Daniel. ^~
Que nada, tamo ae!!! O William foi bom!!!
é possível sim, basta atribuir disabled = true aos outros inputs.