Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Opa bom dia
Gostaria de saber se algum podeira me ajudar com esse codigo eu tenho um codigo que cria varios checkbox deacordo com a necessidade do cliente
Porem o cliente so pode marcar um determinado numero de checkbox
eu jah consigo que aparessa um erro quando o cliente atinge esse limite
agora quero saber se alguem conseguiria era desmarcar o checkbox amais que o cliente marcou
lembrese que o nome dos checkbox nao sao iguais porem os ids sao .
vai o codigo que tenho.
<script language="JavaScript">
<!-- *** funcao javascript *** -->
function contaCheckboxs(selecionados){
var inputs, x, selecionados=0;
inputs = document.getElementsByTagName('input');
for(x=0;x<inputs.length;x++){
if(inputs[x].type=='checkbox'){
if(inputs[x].checked==true && inputs[x].id == 'check'){
selecionados++;
}
}
}
return selecionados;
}
function pegaQuantidades(){
var total;
var numero = "3";
total = contaCheckboxs();
if (total > numero){
alert("Quantidade de incerçao assim: " + total + " acima desse valor nao sera computado.");
//document.form.id.checked=false;
} }
</script>não precisa usar o evento onclick.. ou disparar um click
basta atribuir false a propriedade checked do objeto checkbox.
William,
Desculpe me expressar mal.
Quando digo pra utilizar a função click. Não é para disparar um click.
E sim atribuir um evento a o click, para saber qual o último checkbox selecionado.
Acabei conseguindo juntei 2 codigos e com um pouco de esforço consegui aqui a resposta para ajudar alguem que esteja com essa duvida
function contaCheckbox(selecionados){
var inputs, x, selecionados=0;
inputs = document.getElementsByTagName('input');
for(x=0;x<inputs.length;x++){
if(inputs[x].type=='checkbox'){
if(inputs[x].checked==true){
selecionados++;
}
}
}
return selecionados;
}
function desmarcar(id){
var nome = id;
var boxes = document.getElementsByName("id_"+nome);
boxes[0].checked = false;
}
function pegaQuantidade(id){
var ids = id;
var total;
var total2 = 2;
var is = "false" ;
total = contaCheckbox();
if (total > total2){
alert("Nao e possivel marcar acima de: " + total);
var apaga = desmarcar(ids);
}
}
</script>
e o html ficaria assim
<form>
<input type="checkbox" name="id_1" onclick="pegaQuantidade(1);"/>
<input type="checkbox" name="id_2" onclick="pegaQuantidade(2);"/>
<input type="checkbox" name="id_3" onclick="pegaQuantidade(3);"/>
<input type="checkbox" name="id_4" onclick="pegaQuantidade(4);"/>
<input type="checkbox" name="id_5" onclick="pegaQuantidade(5);"/>
<input type="checkbox" name="id_6" onclick="pegaQuantidade(6);"/>
</form>
Espero que tenha ajudado alguem ...
Dropes,
Segundos os padrões do w3c não é correto ter ID repetidos em uma página.
Faça o contrário, tenha objetos com nomes iguais e ID diferentes.
Para desmarcar o checkbox a mais, você tem que utilizar o evento onclick. Eu aconselho utilizar jquery: http://api.jquery.com/click/.