Ir para conteúdo

POWERED BY:

Arquivado

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

metalsonic

[JQuery] Variáveis

Recommended Posts

Olá!

 

Tenho um código em PHP que vai me montar uma lista com checkboxes dentro de uma div, sendo que eu não tenho como saber quantos checkboxes essa div vai possuir. Por padrão, eles estão disabled.

 

Um checkboxe fora da div habilita todos os checks dentro dessa div, usando JQuery, como no exemplo abaixo:

 

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
function toggleStatus() {
    if ($('#AtaqueEspecial').is(':checked')) {
    	$('#elementsToOperateOn :input').removeAttr('disabled');
    } else {
        $('#elementsToOperateOn :input').attr('disabled', true);
    }   
}
</script>
</head>

<body>
<form action="">
<input type="text" disabled="disabled" value="0" id="valorTotalVantagens" />

Ataque Especial<input id="AtaqueEspecial" name="AtaqueEspecial" value="Ataque Especial" onclick="calculaPontuacao('2' ,'1' , 'valorTotalVantagens')" onchange="toggleStatus()" type="checkbox" />

<div class="a" id="elementsToOperateOn">
<ul>
    <li> 
        <input id="Preciso" name="Preciso" value="Preciso" onclick="calculaPontuacao('0' ,'2' , 'valorTotalVantagens');" type="checkbox" disabled />Preciso ( 2 pontos) 
    </li>
    <li>
        <input id="Teleguiado" name="Teleguiado" value="Teleguiado" onclick="calculaPontuacao('1' ,'1' , 'valorTotalVantagens');" type="checkbox" disabled />Teleguiado (1 Pontos ) 
    </li>
    <li> 
        <input id="Est�pido" name="Est�pido" value="Est�pido" onclick="calculaPontuacao('2' ,'-1' , 'valorTotalVantagens');" type="checkbox" disabled />Est�pido (-1 Ponto ) 
    </li>
</ul>
</div>

</form>

</body>
</html>


Funciona perfeitamente. O problema está que eu preciso reutilizar essa função aqui:

 

<script type="text/javascript">
function toggleStatus() {
    if ($('#AtaqueEspecial').is(':checked')) {
    	$('#elementsToOperateOn :input').removeAttr('disabled');
    } else {
        $('#elementsToOperateOn :input').attr('disabled', true);
    }   
}
</script>

Passando dois parêmetros para ela (Um equivalente a #AtaqueEspecial e o outro a #elementsToOperateOn), mas já li em tudo que é lugar e não consigo fazê-lo de jeito nenhum, pois estou começando agora a lidar com Jquery.

 

Toda e qualquer ajuda será MUITO bem vinda! Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

javascript normal e puro...

<script type="text/javascript">
function toggleStatus( disparo, alvo ) {
    if ($( disparo ).is(':checked')) {
        $( alvo+' :input' ).removeAttr('disabled');
    } else {
        $( alvo+' :input' ).attr('disabled', true);
    }   
}
</script>
E então, use jQuery para chamar a função também:

$(document).ready(function(){
   $("input[name='AtaqueEspecial']").change(function(){
            toggleStatus( $(this), '#elementsToOperateOn' );
   });
});
você quer isso para reaproveitar, certo ? então vai um exemplo para outro grupo, com outro disparador:

$(document).ready(function(){
   $("input[name='AtaqueEspecial']").change(function(){
            toggleStatus( $(this), '#elementsToOperateOn' );
   });
   $("input[name='PoderEspecial']").change(function(){
            toggleStatus( $(this), '#othersElementsToOperateOn' );
   });
});
... e por ai vai.. ^_^

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.